第十四章 Odoo 12开发之部署和维护生产实例( 二 )


exit
在使用以上数据库拷贝之前,应进行清理,比如停止计划动作、关闭 email 服务(包含发送和接收消息) 。根据你的设置来执行这些指定步骤,但通常可使用自动化脚本来执行 。记住psql可用于在命令行直接执行SQL命令,如psql -d odoo-stage -c “” 。
小贴士:可通过命令来更快地创建拷贝: –owner=odoo –=odoo-prod odoo-stage 。但需要说明的是要运行该命令,不能有任何对odoo-prod数据库的连接,因此需要停止Odoo生产环境的服务 。
更新 Odoo 源码
我们使用git pull 命令来从仓库获取最新的Odoo源码 。在那之前,我们可以使用git tag命令来为当前使用的提交创建一个标签,这样可以可容易的对更新进行撤销,命令如下:
sudo su odoo
cd ~/odoo-12
git tag --force 12-last-prod
git pull
要让代码修改生效,我们需要重启Odoo服务 。而要使用数据文件的修改生效,需要对模块进行升级 。通常对Odoo稳定版本的修改都是代码的修复,因此无需冒险执行模块升级 。如果需要对模块升级,可使用-u 附加参数,或者是-u base,它将升级所有模块 。
现在可以启动Odoo的分阶服务了,它将使用在分阶数据库上使用升级代码:
~/odoo-12/odoo-bin -d odoo-stage --http-port=8080 -c /etc/odoo/odoo.conf #add: -u base
exit
Odoo 分阶服务通过在8080端口上进行配置 。可通过浏览器访问:8080来检查升级代码是否正确运作 。如果出现了错误,可通过如下命令来返回上一个版本:
sudo su odoo
cd ~/odoo-12
git12-last-prod
exit
如果一切运行都如预期,则可安全地执行生产环境服务的升级,通常是通过重启来实现 。如果想要执行实际的模块升级,建议的方法是停止服务、运行升级、再重启服务,命令如下:
sudoodoo stop
sudo su -c "~/odoo-12/odoo-bin -c /etc/odoo/odoo.conf -u base --stop-after-init" odoo
sudoodoo start
记住对在用Git 版本进行记录,可通过 git 回到修改前,这让我们可以在需要的时候进行回滚 。强烈推荐在执行数据库升级前保存备份 。在完成之后,可使用 Git 拉取新的版本到生产仓库并完成升级:
sudo su odoo
cd ~/odoo-12
git tag --force 12-last-prod
git pull
exit
sudoodoo# or: sudoodoo
无需频繁进行升级,但也不建议等上一年再进行升级 。每几个月进行一次升级 。还要记得重启服务来启用代码升级,但对模块升级则并非如此 。但如果需要进行指定的漏洞修复,可以更早的进行升级 。还应关注公开渠道对 Odoo 安全漏洞的披露,发上 Odoo 的,具体可查看标签,或者是官方的邮件列表,可通过进行订阅 。
作为一项服务,企业版用户会更早地收到邮件通知来警报这一类问题 。
总结
在本文中,我们学习了在系生产服务器中设置和运行 Odoo 所需的其它步骤 。我们一起了解了配置文件中最重要的设置项,并学习了如何擅用多进程模式 。为提升安全性和扩展性,我们还学习了如何使用 Nginx 来作为 Odoo 服务处理之上的反向代理 。
本文涵盖了运行 Odoo 服务并向用户提供稳定、安全服务的基础知识 。要更多地了解 Odoo,可参考官方文档 。其中更深入的讲解了一些课题,并包含了一些本系列文章未涉及的课题 。
还有一些有关 Odoo 的出版图书还助于你的学习 。Packt 中有一些相关书籍,具体来说Odoo包含了本系列文章未讨论到的高级课题 。
最后,Odoo是一个拥有活跃社区的开源产品 。参与、提问并回馈社区不仅有助于学习,还有助于建立人脉 。说到这,就不能不提 Odoo 社区联盟(OCA),它倡导协作并提供高质量的开源代码,可访问做更进一步了解 。