
关于
分步 Odoo 版本升级顾问:升级前检查清单、社区版 vs 企业版升级路径、OCA 模块兼容性和升级后验证。
name: odoo-upgrade-advisor description: "分步式Odoo版本升级顾问:升级前检查清单、社区版与企业版升级路径、OCA模块兼容性和升级后验证。" risk: safe source: "self"
Odoo 升级顾问
概述
在Odoo主要版本之间升级(例如 v15 → v16 → v17)需要仔细的准备、测试和验证。此技能提供结构化的升级前检查清单,指导您使用升级工具(Odoo升级服务和OpenUpgrade),并提供升级后验证协议。
何时使用此技能
- 规划Odoo主要版本升级。
- 确定哪些自定义模块需要迁移。
- 在生产环境之前在暂存环境中运行升级。
- 升级后验证系统。
工作原理
- 激活:提及
@odoo-upgrade-advisor,说明您当前和目标版本。 - 规划:接收完整的升级路线图和风险评估。
- 执行:获取分步升级命令序列。
升级路径
| 从 | 到 | 是否支持? | 工具 | |---|---|---|---| | v16 | v17 | ✅ 直接 | Odoo升级服务 / OpenUpgrade | | v15 | v16 | ✅ 直接 | Odoo升级服务 / OpenUpgrade | | v14 | v15 | ✅ 直接 | Odoo升级服务 / OpenUpgrade | | v14 | v17 | ⚠️ 多跳 | v14→v15→v16→v17(不能跳过) | | v13或更早 | 任何 | ❌ 不支持 | 需要手动迁移 |
示例
示例 1:升级前检查清单
开始之前:
☑ 1. 列出所有已安装模块(设置 → 技术 → 模块)
导出为CSV并审查自定义/OCA模块
☑ 2. 检查每个社区模块的OCA兼容性矩阵
https://github.com/OCA/maintainer-tools/wiki/Migration-Status
☑ 3. 进行完整备份(数据库 + 文件存储)— 您的恢复点
☑ 4. 将生产环境克隆到暂存环境
☑ 5. 运行Odoo升级预分析:
https://upgrade.odoo.com/ → 上传数据库 → 审查破坏性变更报告
☑ 6. 根据迁移说明审查自定义模块
(使用 @odoo-migration-helper 进行逐模块分析)
☑ 7. 在暂存环境升级并测试 → 修复所有错误 → 重新测试
☑ 8. 安排生产维护窗口
☑ 9. 通知用户计划的停机时间
☑ 10. 执行生产升级 → 验证 → 通过/不通过决定
示例 2:使用OpenUpgrade进行社区版升级
# Clone OpenUpgrade for the TARGET version (e.g., upgrading to v17)
git clone https://github.com/OCA/OpenUpgrade.git \
--branch 17.0 \
--single-branch \
/opt/openupgrade
# Run the migration against your staging database
python3 /opt/openupgrade/odoo-bin \
--update all \
--database odoo_staging \
--config /etc/odoo/odoo.conf \
--stop-after-init \
--load openupgrade_framework
# Review the log for errors before touching production
tail -200 /var/log/odoo/odoo.log | grep -E "ERROR|WARNING|Traceback"
示例 3:升级后验证检查清单
升级后,在上线前验证以下关键领域:
会计:
☑ 试算表总额与升级前快照匹配
☑ 未结发票、账单和付款可访问
☑ 可以对测试对账单执行银行对账
库存:
☑ 库存估值报告与升级前匹配(运行库存估值)
☑ 未结采购订单和销售订单可见
人力资源/薪资:
☑ 所有员工记录完整
☑ 最近3个月的工资单可访问且正确
自定义模块:
☑ 每个自定义模块加载时无ImportError或XML错误
☑ 端到端运行关键业务流程:
创建销售订单 → 确认 → 交付 → 开票 → 付款
用户与安全:
☑ 用户登录正常工作
☑ 访问权限已保留(抽查3-5个用户)
最佳实践
- ✅ 应该: 始终在生产环境的副本(暂存环境)上先升级 — 永远不要在实时实例上操作。
- ✅ 应该: 保持旧版本运行,直到新版本完全验证并签字确认。
- ✅ 应该: 检查OCA的迁移状态页面:OCA Migration Status
- ✅ 应该: 使用Odoo升级服务预分析报告,在编写任何代码之前获取破坏性变更列表。
- ❌ 不应该: 跳过中间版本 — Odoo要求顺序升级(v14→v15→v16→v17)。
- ❌ 不应该: 同时升级自定义模块和Odoo核心 — 先适配Odoo核心,然后修复自定义模块。
- ❌ 不应该: 直接对生产环境运行OpenUpgrade — 始终先在暂存副本上测试。
限制
- 仅覆盖 v14-v17。v13及更早版本具有根本不同的模块结构,需要手动迁移。
- 企业版专属模块变更(例如
sign、account_accountant)可能有未记录的破坏性变更,未包含在OpenUpgrade中。 - Odoo.sh 自动升级路径有单独的工作流程(从Odoo.sh仪表板管理)
兼容工具
Claude CodeCursor
标签
数据工程
