原创:一个Odoo人的一天:SyntaxError挖坑填坑一例:
-
起因:
发现一个小bug,修复后打算更新代码,
发现客户那里 Teamviewer连不上了,只能去现场了,
早上6:30起来先做了另外个安装测试,还算顺利,
8:40左右出门,到了现场后,
经过一番测试
发现其它电脑Teamviewer也都连不上,
结合用户的现场回馈,
看来是 总防火墙把Teamviewer给封了,
有朋友推荐了向日葵,那个倒是很早就试过,不行,
这里得出一个 经验:这类解决方案,目前不太适合大范围推广,
很有可能就是被封的命运。
......折腾了3个多小时,总算凑合能上外网了,
期间还为了图方便,脑残的点过下 2片网卡桥接,
结果是直接引起 交换机 封锁了这个物理网口,哭死,
此处略过数字。。
从出门开始过了6个小时左右,总算把代码放到生产环境,
备份 老代码,
复制 新代码,
然后 运行,发现报错,哭死。。
ERROR: column res_currency.currency_rate does not exist
LINE 1: ...tive" as "active","res_currency"."name" as "name","res_curre...
按技术说的填了一个坑后,
还是报错,
,
而由于时间已经下午4点多了,自己还是有点急了,
还会想到孩子的作业还没盯,
然后就是手里还有篇行事历没写。。。当时应该收手了,去测试服务器好好测测,改天再去,
不过一时心急:
执行了 ./odoo-bin -c /etc/odoo/odoo.conf -d xxx -u base,第二次报错,是报缺少pysftp,
就很纳闷了,之前安装的时候,怎么没说少这个,
后来想起来当时因为安装pysftp 超时,所以代码中注释掉了,
于是在__manifest__.py中注释了这部分代码;
一天下来已经挺累了,
期间还接了个电话,帮朋友介绍了个业务,
这时候大脑短路的一刻来了,
心里想着中午有过备份,而且由于断过网,用的用户应该不多吧,
所以没有再次备份数据库!,
再执行: ./odoo-bin -c /etc/odoo/odoo.conf -d xxx -u base,然后呢,还是挂,而且。。。数据库管理界面也进不去了,哭倒在地……
这个报错,以前肯定看到过,但是就是想不起来了,
一步步排查,又折腾了1个小时左右。
页面总算可以打开了,但样子有点怪(这也提供了线索),恢复的数据库也 不能进,日志还是 语法错;
什么原因呢?
继续缩小范围排查,发现 是这次注释的没写好少注释了个括号,
到晚上7点左右,总算踏上了回家的路。以此为记:
1:这次过去主要是解决 一个 Teamviewer被封的问题,对下一步动作就是:更新代码其实并没有多做测试,出这样的问题,也真正是一个教训,下次会更详细的了解问题,做出相应的准备,上面这篇完全是不在状态做的一系列行为,如果不在状态,首先要调整好状态,或者少做一点,或者准备更充分一点。清醒的话,第一个坑,就不会踩进去。
2:代码本地Run过之后,在测试服务器上还是要测,
3:生产环境:代码改动前,先通知所有用户,手机调为飞行模式!然后停掉服务,数据库备份,老代码备份,
4: manifest.py中如果有语法错误,会导致 管理数据库的页面都不能进