odoo卸载模块完系统错误Internal Server Error
-
@萧云飞
是有mang2one还是什么依赖关系,但也只是数据依赖,没有模块依赖关系
我记得有一次报错,我直接去数据库删掉了他的表,然后就好了
这一次删掉也不行,现在直接换了个数据库
从安全性来说这样不太好吧,模块导致服务器直接出错什么的 -
@BraidTIm odoo的数据库表和列都是更具模块中对应的py文件自动生成的。many2one是要建立外键的,试想下,你的这个表的外键对应的另一个表被强制删除了,你觉得,那这个外键还存在不呢?所以你应该建立模块依赖关系。odoo会更具模块依赖关系删除整个依赖关系链上的模块。这个安全性,不是一个平台本身能全部解决的,而是你的程序设计。再安全的平台,你要开发有漏洞的代码,它也没有办法。我能想到的就是这些,希望对你有帮助
-
@萧云飞
首先感谢大佬们的耐心解答!
我没有设置模块之间的继承啊。。。我就是两个表数据之间有外键而已。有外键的话卸载模块的时候,odoo会自动按照顺序删除吗?
最后的错误KeyError: u'meeuerp.category'好像没有详细描述信息,是丢了个表吗? -
@BraidTIm 可能就是你卸载的模块中,有这个meeuerp.category这个表,而你的数据库中,还有对这个表的外键关联的表,odoo会认为这个数据库不能用,所以服务器就报错了。我想是这样的,你仔细排查下。你用了外键,把依赖建起,odoo会按照依赖关系删除。比如你有三个模块,A/B/C,A是基础模块,B依赖A, C依赖B,你卸载B,A不会受影响,而C它就会卸载。如果你这个C表中有B的外键,而你没有建立C依赖B的关系,你卸载了B,它是不会卸载C,而odoo在自检到C模块的代码时,就会报错。这样应该好理解点。