当我运行odoo服务器时,我收到了以下警告信息。
警告dietfacts2 openerp.modules.loading:模型product.nutrientitem已声明但无法加载! (也许部分删除或重命名模块)
我知道它显示了此警告消息,因为我创建了模型名称,但之后我又更改了它。该模型已保存到postgres DB。我试图删除数据库中的表但不成功。
dietfacts2 =#从ir_model中删除,其中model =' product.nutrientitem&#39 ;; 错误:列"模型"中的空值违反非空约束 详细信息:失败行包含(1011,2017-02-20 04:15:05.207869,2017-02-20 04:15:05.207869,285,null,f,false,product_nutrientitem_write_uid_fkey,null,null,null,null)。 语境:SQL语句"仅限更新"公共"。" ir_model_constraint" SET" model" = NULL WHERE $ 1 OPERATOR(pg_catalog。=)" model""
答案 0 :(得分:4)
可能您需要先清除其他表中的数据。试试ir_model_data
DELETE FROM ir_model_data WHERE model = 'your.model';
然后你应该可以删除你的表。如果您有与桌子相关的约束,您可能需要识别这些并将其删除。
答案 1 :(得分:1)
您的数据库中有过时的模型数据。通常是由于已删除/重命名的模型或未正确卸载模块。
处理这些情况的有用模块:
https://github.com/OCA/server-tools/tree/11.0/database_cleanup
https://www.odoo.com/apps/modules/11.0/database_cleanup/
它允许您清除模型,操作等的陈旧数据,无论是什么" orphan"记录仍在您的数据库中。您将在技术部分找到用于数据库清理的控制面板。