ODOO升级可能遇到问题

2023-07-31,

a,找不到模块或视图不存在。
解决方案:查看是否将相应py文件加入到__init__文件中,或xml文件加入到manifest->data文件中。
b, 找不到关联模块。
解决方案:这种一般要么很简单,要么很复杂。
先将关联模块加入到manifest->depends中,升级
如果依然报错,在用到此模型的py文件中加入继承此模型的类
如果还不行,检查2个模块是否被相互继承,检查继承顺序。
如果还不行,尝试重写被继承模型,将模型剥离出原模块。
c, 视图错误,或字段错误。
解决方案:一般这种为低端错误,很容易排查,检查关联模型是否存在,检查字段是否存在。
d, 重启直接崩溃,无法进行界面升级。
解决方案:命令行重启升级一般能够解决。
重启命令加 -u 需要升级的模块。
如果还是炸,数据库将自动重启升级结束。
update ir_module_module set state = ' installed’ where state = ' to upgrade'
然后再重启,解决问题后再进行升级。
e, 升级卡死
解决方案:线上升级卡死可能由于3种原因,1代码问题,常常发生在新加字段,ondepends字段,complate字段。2,继承问题。3,多进程数据库死锁问题。本地只有1,2两种原因。
1解决方案,尽量在新添加字段时不要加入数据库约束,比如说非空。尽量不要在新加字段上加入depends和complate进行计算。如果没办法越过上述问题,那么要么等待程序计算完成,要么查看字段是否添加成功,添加成功后直接重启,sql更新数据。
2解决方案,参考b解决方案
3解决方案,上线前保证尽量少的在线用户操作。但是肯定还是会发生的,那么下面这条SQL可能可以救命。
select
pg_terminate_backend(pid)
from pg_stat_activity
where (now() - backend_start) > '00:01:00' and pid != (select pg_backend_pid()); --强杀连接超过1分钟的事务 不要杀死自己的进

数据库:

select state,* from ir_module_module where state='to upgrade'

ODOO升级可能遇到问题的相关教程结束。

《ODOO升级可能遇到问题.doc》

下载本文的Word格式文档,以方便收藏与打印。