Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

odoo卸载模块完系统错误Internal Server Error



  • 是什么表没清除干净吗?每次想把模块卸载了再装一次就直接出错,系统都进不去。看log好像是什么没找到。之前都是卸了重装,但是感觉不是解决办法,日志如下
    2017-03-28 17:05:23,967 6328 INFO BraidTim odoo.modules.loading: loading 1 modules...
    2017-03-28 17:05:23,982 6328 INFO BraidTim odoo.modules.loading: 1 modules loaded in 0.01s, 0 queries
    2017-03-28 17:05:24,012 6328 INFO BraidTim odoo.modules.loading: loading 43 modules...
    2017-03-28 17:05:24,063 6328 INFO BraidTim odoo.modules.loading: 43 modules loaded in 0.05s, 0 queries
    2017-03-28 17:05:24,174 6328 INFO BraidTim odoo.modules.loading: Modules loaded.
    2017-03-28 17:05:24,177 6328 ERROR BraidTim odoo.modules.registry: Failed to load registry
    Traceback (most recent call last):
    File "C:\work\Odoo 10.0\server\odoo\modules\registry.py", line 78, in new
    File "C:\work\Odoo 10.0\server\odoo\modules\loading.py", line 411, in load_modules
    File "C:\work\Odoo 10.0\server\odoo\addons\base_action_rule\models\base_action_rule.py", line 315, in _register_hook
    File "C:\work\Odoo 10.0\server\odoo\api.py", line 752, in getitem
    File "C:\work\Odoo 10.0\server\odoo\modules\registry.py", line 170, in getitem
    KeyError: u'meeuerp.category'
    2017-03-28 17:05:24,187 6328 INFO BraidTim werkzeug: 127.0.0.1 - - [28/Mar/2017 17:05:24] "GET /web HTTP/1.1" 500 -
    2017-03-28 17:05:24,191 6328 ERROR BraidTim werkzeug: Error on request:
    Traceback (most recent call last):
    File "werkzeug\serving.py", line 177, in run_wsgi

    File "werkzeug\serving.py", line 165, in execute

    File "C:\work\Odoo 10.0\server\odoo\service\server.py", line 246, in app
    return self.app(e, s)
    File "C:\work\Odoo 10.0\server\odoo\service\wsgi_server.py", line 184, in application
    return application_unproxied(environ, start_response)
    File "C:\work\Odoo 10.0\server\odoo\service\wsgi_server.py", line 170, in application_unproxied
    result = handler(environ, start_response)
    File "C:\work\Odoo 10.0\server\odoo\http.py", line 1306, in call
    return self.dispatch(environ, start_response)
    File "C:\work\Odoo 10.0\server\odoo\http.py", line 1280, in call
    return self.app(environ, start_wrapped)
    File "werkzeug\wsgi.py", line 579, in call

    File "C:\work\Odoo 10.0\server\odoo\http.py", line 1454, in dispatch
    odoo.registry(db).check_signaling()
    File "C:\work\Odoo 10.0\server\odoo_init_.py", line 55, in registry
    return modules.registry.Registry(database_name)
    File "C:\work\Odoo 10.0\server\odoo\modules\registry.py", line 55, in new
    return cls.new(db_name)
    File "C:\work\Odoo 10.0\server\odoo\modules\registry.py", line 78, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
    File "C:\work\Odoo 10.0\server\odoo\modules\loading.py", line 411, in load_modules
    model._register_hook()
    File "C:\work\Odoo 10.0\server\odoo\addons\base_action_rule\models\base_action_rule.py", line 315, in _register_hook
    Model = self.env[action_rule.model]
    File "C:\work\Odoo 10.0\server\odoo\api.py", line 752, in getitem
    return self.registry[model_name]._browse((), self)
    File "C:\work\Odoo 10.0\server\odoo\modules\registry.py", line 170, in getitem
    return self.models[model_name]
    KeyError: u'meeuerp.category'


  • 管理员

    你卸载的模块操作是怎样呢?一般直接点击odoo里面的模块卸载是没有问题的。



  • 我猜测,可能是没有建立正确的依赖关系,然后卸载了模块依赖链前面的模块,后面的模块再去调用的时候,就报错了。看你这个报错信息,你可以检查下meeuerp.category这个model



  • @Joshua
    就是在app那儿点的卸载
    就算关系不对,卸载的时候应该处理掉吧?卸载模块导致服务器错误似乎逻辑不太对?最多也是进入模块报错才对吧



  • @萧云飞
    是有mang2one还是什么依赖关系,但也只是数据依赖,没有模块依赖关系
    我记得有一次报错,我直接去数据库删掉了他的表,然后就好了
    这一次删掉也不行,现在直接换了个数据库
    从安全性来说这样不太好吧,模块导致服务器直接出错什么的


  • 管理员

    @BraidTImodoo卸载模块完系统错误Internal Server Error 中说:

    meeuerp.category

    感觉像是@萧云飞 说的依赖关系出了问题。

    @BraidTIm 模块是对系统的表结构都会影响的,如果模块是设计不好有可能会造成系统进不了,模块要谨慎安装,特别是生产系统。



  • @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模块的代码时,就会报错。这样应该好理解点。



  • @萧云飞
    如果我有ABC,B依赖A,C依赖B
    那我卸载时候odoo会从C开始卸载?还是说根据创建的时间?或者代码里面的先后顺序?



  • @BraidTIm 从C开始卸载


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待