使用OCA/OpenUpgrade升级odoo版本
文档:
https://oca.github.io/OpenUpgrade/
模块:
https://github.com/OCA/OpenUpgrade
迁移脚本开发:
https://oca.github.io/OpenUpgrade/080_migration_script_development.html
目的:将odoo旧版本数据升级为新版本可以运行的数据。
# https://oca.github.io/OpenUpgrade/040_run_migration.html
1. Get the code from OpenUpgrade and dependencies
# 下载模块
git clone https://github.com/OCA/OpenUpgrade.git
# 安装依赖
pip install openupgradelib
# 从github下载最新版本
# pip install git+https://github.com/OCA/openupgradelib.git@master#egg=openupgradelib
2. Make a copy of the database to migrate
准备好运行新版本odoo的运行环境,可以参考odoo官方部署/开发环境搭建文档。
备份数据并恢复数据到升级用的数据库。
可以通过psql工具或原odoo版本的数据库管理工具进行恢复。
3.Adjust the configuration for Odoo and OpenUpgrade
使用命令参数或在配置中配置好升级脚本路径
--upgrade-path=<path_to_openupgrade>/openupgrade_scripts/scripts --update all --stop-after-init --load=base,web,openupgrade_framework
如果连续升级多个版本仅需要设置目标版本
export OPENUPGRADE_TARGET_VERSION=13.0
4. Run the upgrade, fix data and repeat…
Run the upgrade and check for errors. You will probably learn a lot about your data and have to do some manual clean up before and after the upgrade. Expect to repeat the process several times as you encounter errors, clean up your data, and try again. If necessary, ask for help or report bugs on GitHub.
Write the missing migration scripts
At this stage, if some of your modules don’t have yet migration scripts, you might need to add them yourself. Read more about the development of migrations scripts in Migration script development
执行升级命令、并处理报错。开发、调试缺失的升级脚本、第三方的模块,直至完成升级。
开发脚本的试错过程
基本上,这是在您尝试运行升级的步骤中发生的情况 如 运行迁移 中所述:
-
[A] 将旧版本的数据库副本作为 db-upgrade ,它是 通过旧 Odoo 的数据库管理器轻松完成 http://localhost:8069/web/database/manager
-
[B] 运行
odoo -d db-upgrade -u all --stop-after-init -
[C] 如果出现错误,请修复添加或编辑迁移的错误 脚本进行修复,然后使用
-u <fixed_module>而不是-u all。 这种运行方式仅用于测试目的,对您有所帮助 在开发过程中节省大量时间。 每当遇到意外错误时,您可能希望从 [A] 重新启动,因为 此步骤将使数据库处于不一致状态。 -
[D] 修复所有问题后,返回
--update all以确保所有 依赖模块已升级。
使用演示数据生成的生产数据库将转换为非演示数据库。如果你想避免这种情况,你必须通过环境变量 OPENUPGRADE_USE_DEMO,值“yes”。
AI读取文档的反馈:
我来帮您详细研读这个Odoo升级指南,然后为您总结如何进行Odoo版本升级。
基于OCA OpenUpgrade的官方文档,我为您详细解释如何进行Odoo版本的升级:
## Odoo版本升级完整指南
### 1. 获取OpenUpgrade代码和依赖
**OpenUpgrade框架**[2]
- 确保在目标版本Odoo实例的addons路径中添加`openupgrade_framework`和`openupgrade_scripts`模块
- 对于旧版本:从GitHub检出所需版本的OpenUpgrade源代码
- 每个分支对应一个版本迁移(如13.0分支从12.0迁移到13.0)
- 如果跨多个版本升级,需要按顺序运行每个版本的OpenUpgrade,不支持跳版本
**获取openupgradelib**[2]
```bash
pip install git+https://github.com/OCA/openupgradelib.git@master#egg=openupgradelib
```
### 2. 数据库备份(关键步骤)
**必须备份**[2]
- 在开始升级过程前,**绝对必须**备份生产数据库
- 决定要升级的数据库并创建副本用于测试
### 3. 配置调整
**推荐的命令行参数**[2]
```bash
--upgrade-path=<path_to_openupgrade>/openupgrade_scripts/scripts
--update all
--stop-after-init
--load=base,web,openupgrade_framework
```
**环境变量设置**[2]
当跨多个版本迁移时,设置目标版本环境变量:
```bash
export OPENUPGRADE_TARGET_VERSION=13.0
```
**配置选项**[2]
对于14.0之前的版本,在服务器配置文件中添加`[openupgrade]`部分的配置:
- `autoinstall`:自动安装模块字典
- `force_deps`:强制设置模块依赖关系
### 4. 执行升级过程
**运行升级**[2]
1. 运行升级并检查错误
2. 预期需要多次重复,因为可能遇到数据问题需要手动清理
3. 如遇问题,在GitHub上寻求帮助或报告bug
**处理缺失的迁移脚本**[2]
- 如果某些模块缺少迁移脚本,可能需要自行编写
- 参考"Migration script development"文档了解迁移脚本开发
### 关键注意事项
1. **版本顺序**:必须按版本顺序升级,不能跳版本[2]
2. **数据安全**:升级前必须完整备份数据库[2]
3. **测试环境**:建议在测试环境中多次验证后再在生产环境执行[2]
4. **社区支持**:OpenUpgrade是OCA的开源项目[1][3][4],提供免费的升级路径
OpenUpgrade项目的目标是提供开源的Odoo版本升级路径[1][3],通过社区维护的迁移脚本来简化升级过程。虽然过程可能需要多次迭代和数据清理,但这是目前最可靠的Odoo版本升级方法。

浙公网安备 33010602011771号