在什么情况下 db.define_table() return None
Under what circumstances would db.define_table() return None
这段代码工作正常,但现在失败了,因为 db.define_table() returns 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
工作?
(我正在使用它来创建一个内存中的 table,我用实际 table 的列表填充它。)
您可能还设置了 DAL(..., lazy_tables=True)
,在这种情况下,db.define_table()
returns None
而不是 Table
对象,因为 table 直到通过 db.tablename
.
首次访问后才真正创建
鉴于您的代码,设置 lazy_tables=True
没有任何好处,因为所有 table 无论如何都会在定义后立即被访问(并因此被创建)。
这段代码工作正常,但现在失败了,因为 db.define_table() returns 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
工作?
(我正在使用它来创建一个内存中的 table,我用实际 table 的列表填充它。)
您可能还设置了 DAL(..., lazy_tables=True)
,在这种情况下,db.define_table()
returns None
而不是 Table
对象,因为 table 直到通过 db.tablename
.
鉴于您的代码,设置 lazy_tables=True
没有任何好处,因为所有 table 无论如何都会在定义后立即被访问(并因此被创建)。