Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Step-by-step Odoo version upgrade advisor: pre-upgrade checklist, community vs enterprise upgrade path, OCA module compatibility, and post-upgrade validation.
.claude/skills/odoo-upgrade-advisor/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | — | — |
| case-21 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-08 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
Upgrading Odoo between major versions (e.g., v15 → v16 → v17) requires careful preparation, testing, and validation. This skill provides a structured pre-upgrade checklist, guides you through the upgrade tools (Odoo Upgrade Service and OpenUpgrade), and gives you a post-upgrade validation protocol.
@odoo-upgrade-advisor, state your current and target version.| From | To | Supported? | Tool | |---|---|---|---| | v16 | v17 | ✅ Direct | Odoo Upgrade Service / OpenUpgrade | | v15 | v16 | ✅ Direct | Odoo Upgrade Service / OpenUpgrade | | v14 | v15 | ✅ Direct | Odoo Upgrade Service / OpenUpgrade | | v14 | v17 | ⚠️ Multi-hop | v14→v15→v16→v17 (cannot skip) | | v13 or older | any | ❌ Not supported | Manual migration required |
textBEFORE YOU START: ☑ 1. List all installed modules (Settings → Technical → Modules) Export to CSV and review for custom/OCA modules ☑ 2. Check OCA compatibility matrix for each community module https://github.com/OCA/maintainer-tools/wiki/Migration-Status ☑ 3. Take a full backup (database + filestore) — your restore point ☑ 4. Clone production to a staging environment ☑ 5. Run the Odoo Upgrade pre-analysis: https://upgrade.odoo.com/ → Upload DB → Review breaking changes report ☑ 6. Review custom modules against migration notes (use @odoo-migration-helper for per-module analysis) ☑ 7. Upgrade and test in staging → Fix all errors → Re-test ☑ 8. Schedule a production maintenance window ☑ 9. Notify users of scheduled downtime ☑ 10. Perform production upgrade → Validate → Go/No-Go decision
bash# 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"
textAfter upgrading, validate these critical areas before going live: Accounting: ☑ Trial Balance totals match the pre-upgrade snapshot ☑ Open invoices, bills, and payments are accessible ☑ Bank reconciliation can be performed on a test statement Inventory: ☑ Stock valuation report matches pre-upgrade (run Inventory Valuation) ☑ Open Purchase Orders and Sale Orders are visible HR / Payroll: ☑ All employee records are intact ☑ Payslips from the last 3 months are accessible and correct Custom Modules: ☑ Every custom module loaded without ImportError or XML error ☑ Run the critical business workflows end-to-end: Create sale order → confirm → deliver → invoice → payment Users & Security: ☑ User logins work correctly ☑ Access rights are preserved (spot-check 3-5 users)
sign, account_accountant) may have undocumented breaking changes not included in OpenUpgrade.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.