SuperAPI AI 工具集

odoo-upgrade-advisor

部署与运维

查看项目

更新于 10-16 04:04

技能介绍

用途

Odoo Upgrade Advisor 是一个面向 Odoo 大版本升级的顾问型技能。Odoo 在主要版本之间(例如 v15 → v16 → v17)升级需要充分的准备、测试与验证,本技能提供结构化的升级前检查清单,引导使用升级工具(Odoo Upgrade Service 与 OpenUpgrade),并给出升级后的验证协议。

适用时机

  • 规划 Odoo 大版本升级时。
  • 识别哪些自定义模块需要迁移时。
  • 在生产环境之前,先在预发布(staging)环境运行升级时。
  • 升级完成后验证系统时。

使用方式

  1. 激活:提及 @odoo-upgrade-advisor,并说明当前版本与目标版本。
  2. 规划:获得完整的升级路线图与风险评估。
  3. 执行:获得分步的升级命令序列。

升级路径

从 到 是否支持 工具
v16 v17 ✅ 直接升级 Odoo Upgrade Service / OpenUpgrade
v15 v16 ✅ 直接升级 Odoo Upgrade Service / OpenUpgrade
v14 v15 ✅ 直接升级 Odoo Upgrade Service / OpenUpgrade
v14 v17 ⚠️ 多跳升级 v14→v15→v16→v17(不能跳过)
v13 或更早 任意 ❌ 不支持 需要手动迁移

主要能力与示例

升级前检查清单

开始之前:

  • 列出所有已安装模块(设置 → 技术 → 模块),导出为 CSV,检查自定义/OCA 模块。
  • 对照 OCA 兼容性矩阵检查每个社区模块:https://github.com/OCA/maintainer-tools/wiki/Migration-Status
  • 做完整备份(数据库 + filestore),作为恢复点。
  • 将生产环境克隆到预发布环境。
  • 运行 Odoo Upgrade 预分析:https://upgrade.odoo.com/ → 上传数据库 → 查看破坏性变更报告。
  • 对照迁移说明检查自定义模块(可使用 @odoo-migration-helper 做逐模块分析)。
  • 在预发布环境升级并测试 → 修复所有错误 → 重新测试。
  • 安排生产环境维护窗口。
  • 通知用户计划停机时间。
  • 执行生产升级 → 验证 → 做出 Go/No-Go 决策。

使用 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"

升级后验证清单

升级后,在正式上线前验证以下关键领域:

会计:

  • 试算平衡表合计与升级前快照一致。
  • 未结发票、账单和付款可访问。
  • 可对测试对账单执行银行对账。

库存:

  • 库存估值报告与升级前一致(运行 Inventory Valuation)。
  • 未结采购订单和销售订单可见。

HR / 薪酬:

  • 所有员工记录完整。
  • 最近 3 个月的工资单可访问且正确。

自定义模块:

  • 每个自定义模块加载时无 ImportError 或 XML 错误。
  • 端到端运行关键业务流程:创建销售订单 → 确认 → 发货 → 开票 → 付款。

用户与安全:

  • 用户登录正常。
  • 访问权限保留(抽查 3–5 个用户)。

最佳实践

  • ✅ 始终先在生产的副本(预发布环境)上升级,绝不在实时实例上直接操作。
  • ✅ 在新版本完全验证并签署确认之前,保持旧版本继续运行。
  • ✅ 查看 OCA 迁移状态页面:OCA Migration Status。
  • ✅ 在编写任何代码之前,使用 Odoo Upgrade Service 预分析报告获取破坏性变更列表。
  • ❌ 不要跳过中间版本——Odoo 要求顺序升级(v14→v15→v16→v17)。
  • ❌ 不要同时升级自定义模块和 Odoo 核心——先适配 Odoo 核心,再修复自定义模块。
  • ❌ 不要直接对生产环境运行 OpenUpgrade——始终先在预发布副本上测试。

限制

  • 仅覆盖 v14–v17。v13 及更早版本的模块结构有根本差异,需要手动迁移。
  • 企业版专属模块变更(例如 sign、account_accountant)可能存在 OpenUpgrade 未包含的未记录破坏性变更。
  • Odoo.sh 自动升级路径有单独的工作流(从 Odoo.sh 仪表板管理),本技能不覆盖。
  • OWL JavaScript 组件迁移(旧版 widget → OWL v16+)属于复杂的前端主题,超出本技能范围。