Python(作者真实开发环境,odoo升级奔溃解决方案)

Դ未知

ߣOdoo

12

2020-02-23 12:41:42

Odoo升级崩溃解决方案

查看并分析剖解原因。

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分钟的事务 不要杀死自己的进程

佭ϴý Ѷ Media8ý

在线客服

外链咨询

扫码加我微信

微信:xmbfjc

返回顶部