Odoo 13迁移至Ubuntu新服务器后异常问题求助
Odoo 13迁移后问题排查与解决
问题1:AttributeError: type object 'res.users' has no attribute 'check_open_shift'
- 该错误表明
res.users模型被某个自定义模块扩展并添加了check_open_shift方法,但相关模块未正确加载或依赖缺失。结合你提到的hr_skill和vendor_custom会导致服务器宕机,大概率是这两个模块(或其依赖模块)对res.users做了扩展,但迁移后存在模块依赖未满足、文件损坏或权限异常的情况。 - 解决步骤:
- 先移除
custom目录下的hr_skill和vendor_custom文件夹,启动Odoo确认基础服务能正常运行。 - 检查这两个模块的代码,定位
check_open_shift方法的定义位置,确认是否依赖了其他未迁移的模块,或是代码存在路径、权限相关错误。 - 修复模块代码后,重新复制到
custom目录,执行命令odoo-bin -d 数据库名 -u 模块名 --stop-after-init更新模块,确保方法被正确加载。
- 先移除
问题2:访问模块时界面变灰无法操作
- 界面变灰通常是前端资源加载失败,或后端服务未正常响应请求导致的。
- 可能原因及解决方式:
- 静态资源权限问题:检查
filestore和enterprise目录的权限,确保Odoo进程用户(通常为odoo或当前操作用户)拥有读写权限,可执行命令sudo chown -R odoo:odoo /path/to/odoo/custom /path/to/odoo/enterprise /path/to/odoo/filestore调整权限。 - 模块冲突引发前端错误:
hr_skill和vendor_custom模块可能引发前端JS异常,导致界面冻结。先禁用这两个模块,重启Odoo后检查界面是否恢复正常。 - 数据库结构未同步:迁移后需确保数据库与模块结构同步,执行命令
odoo-bin -d 数据库名 --update all --stop-after-init全量更新模块,修复可能存在的模型或视图差异。
- 静态资源权限问题:检查
额外注意事项
- 迁移时需保证新服务器的Odoo版本、Python依赖与旧服务器完全一致,避免版本不兼容问题。
- 复制自定义模块后,务必检查模块的
__manifest__.py文件,确认依赖的模块已全部安装并加载。
内容的提问来源于stack exchange,提问作者Mohamed Hamed
相关产品推荐
相关产品推荐

