web2py:在一条语句中删除数据库中的所有表?
我想知道 web2py 是否提供了任何方法来一次删除所有表,而不必指定要删除的每个表?
提前致谢!
I was wondering if web2py offers any way to drop all tables at once, without having to specify each table to be deleted?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
清旖2024-10-17 20:31:00
上一个答案有一个问题——如果您使用多个数据库,如果您犯了剪切和粘贴错误,您可能会意外地从错误的数据库中删除表。示例 -
for table_name in db_one.tables():
db_two[table_name].drop()
如果将代码从一个模型或应用程序复制到另一个模型或应用程序,则很容易编辑一个数据库引用而不是另一个。如果 db_two 的表名称与 db_one 中的某些表匹配,则可能会将表删除到错误的数据库中。最好编写一个以 db 作为参数的简单函数——
def dropdb(thedb):
for table_name in thedb.tables():
thedb[table_name].drop()
“不要重复自己”。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
db.tables()
返回一个列表,其中包含数据库中所有表的名称db
所以你可以这样做:
(最后的
db.commit( )
仅当 Web2Py 没有自动提交 DAL 更改时才需要,例如从命令行界面。)db.tables()
returns a list with the names of all tables in the databasedb
So you can do:
(The final
db.commit()
is only necessary if Web2Py isn't committing your DAL changes automatically, for example from the command line interface.)