【问题标题】: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 工作?

(我正在使用它来创建一个内存表,并用实际表的列表填充该表。)

【问题讨论】:

    标签: web2py data-access-layer


    【解决方案1】:

    您可能还设置了DAL(..., lazy_tables=True),在这种情况下,db.define_table() 返回None 而不是Table 对象,因为在第一次通过db.tablename 访问之前不会实际创建表。

    鉴于您的代码,设置lazy_tables=True 没有任何好处,因为无论如何在定义之后都会立即访问(并因此创建)所有表。

    【讨论】:

    • 你太棒了!这正是我所做的。谢谢。
    猜你喜欢
    • 2020-02-07
    • 2015-03-06
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多