Odoo版本升级
起因是有客户希望从当前使用的版本16.3升级到17.0,后来从官方了解到目前官方支持数据库的在线升级,并且提供了免费的工具。因此,我们使用此工具成功帮客户从16.3版本升级到了17.0。
本文即为升级过程的概述。
先决条件
想要把低版本的数据库升级到高版本需要满足两个条件:
- 官方正版授权数据库
- 没有第三方模块或第三方模块已经升级到目标版本
如果是在同一台服务器上进行升级,那么需要先卸载旧版本的odoo再安装新版本,或是新旧两个版本共存。
数据备份
在满足了上述两个条件以后我们就可以开始进行升级了,不过在此之前,还是建议用户进行数据备份。
如果是官网saas版本或odoo.sh版本,可以使用官网提供的备份工具。如果是自建服务器,那么可以根据自己的情况自行备份。
升级步骤
下面我们开始正式升级。
截止目前,官方脚本对于17.0仅支持测试模式,不支持生产模式。
1. 首先我们运行官方提供的升级脚本
python <(curl -s https://upgrade.odoo.com/upgrade) test -d <your db name> -t <target version>
2. 升级完成之后,脚本会提示:
...
Neutralization finished
Upgrading: 8 minutes, 48.84 seconds
Dumping db_1220337 into /home/odoo/data/upgraded.dump ...
2024-01-19 02:18:16 INFO: Dumping: 4.41 seconds
Upgrade request successfully processed!
A detailed report of the upgrade is available in the Discuss app in the Administrators channel.
Processing time: 9 minutes, 2.94 seconds
2024-01-19 02:18:32 INFO: Downloading the database dump and its filestore from odoo@as1.upgrade.odoo.com:/data.
37,776,504 100% 15.64MB/s 0:00:02 (xfr#1831, to-chk=0/2271)
2024-01-19 02:18:38 INFO: Restore the dump file 'upgraded.dump' as the database 'xxxx_test_17.0_2024_01_19_14_08'
2024-01-19 02:19:06 INFO: Merging the new filestore with the old one in /opt/odoo/.local/share/Odoo/filestore/xxxxx_test_17.0_2024_01_19_14_08 ...
3. 脚本运行完成之后,在数据库中会多出一个xxx_test_xxx开头的数据库。
4. 我们进入这个test的数据库,去检查数据是否完整。
5. 升级结束
17.0的测试转生产
由于目前17.0仅支持测试模式,那么我们如果想要正式使用该如何处理呢?
去掉test标志
首先我们要去掉test标志,在设置-视图中找到_upgrade_开头的视图,关掉他们
执行一次全模块升级
因为版本差异, 我们在切换到目标数据库之后最好执行一次全模块升级,以覆盖掉可能出现的静态资源错误。