在啥情况下 db.define_table() 会返回 None
Posted
技术标签:
【中文标题】在啥情况下 db.define_table() 会返回 None【英文标题】:Under what circumstances would db.define_table() return None在什么情况下 db.define_table() 会返回 None 【发布时间】:2020-11-04 14:23:59 【问题描述】:这段代码运行良好,但现在失败了,因为 db.define_table() 返回 None
。
table = db.define_table('DatabaseModel', Field('TableName')) # This is not working now
for t in db.tables:
table.update_or_insert(TableName=t)
唯一可能影响它的更改是在 appconfig.ini 中设置 migrate = false
。我已经改回来了,但没有用。
什么会阻止db.define_table
工作?
(我正在使用它来创建一个内存表,并用实际表的列表填充该表。)
【问题讨论】:
【参考方案1】:您可能还设置了DAL(..., lazy_tables=True)
,在这种情况下,db.define_table()
返回None
而不是Table
对象,因为在第一次通过db.tablename
访问之前不会实际创建表。
鉴于您的代码,设置lazy_tables=True
没有任何好处,因为无论如何在定义之后都会立即访问(并因此创建)所有表。
【讨论】:
你太棒了!这正是我所做的。谢谢。以上是关于在啥情况下 db.define_table() 会返回 None的主要内容,如果未能解决你的问题,请参考以下文章
在啥情况下 GetMsgProc 函数会收到小于 0 的代码?
AppDomain.DoCallback()在啥情况下会失败?