odoo-upgrade-advisor
Step-by-step Odoo version upgrade advisor: pre-upgrade checklist, community vs enterprise upgrade path, OCA module compatibility, and post-upgrade validation.
- risk
- safe
- source
- self
Odoo Upgrade Advisor
Overview
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.
When to Use This Skill
- Planning a major Odoo version upgrade.
- Identifying which custom modules need to be migrated.
- Running the upgrade on a staging environment before production.
- Validating the system after an upgrade.
How It Works
- Activate: Mention
@odoo-upgrade-advisor, state your current and target version. - Plan: Receive the full upgrade roadmap and risk assessment.
- Execute: Get a step-by-step upgrade command sequence.
Upgrade Paths
| 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 |
Examples
Example 1: Pre-Upgrade Checklist
BEFORE 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
Example 2: Community Upgrade with 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"
Example 3: Post-Upgrade Validation Checklist
After 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)
Best Practices
- ✅ Do: Always upgrade on a copy of production (staging) first — never the live instance.
- ✅ Do: Keep the old version running until the new version is fully validated and signed off.
- ✅ Do: Check OCA's migration status page: OCA Migration Status
- ✅ Do: Use the Odoo Upgrade Service pre-analysis report to get a list of breaking changes before writing any code.
- ❌ Don't: Skip intermediate versions — Odoo requires sequential upgrades (v14→v15→v16→v17).
- ❌ Don't: Upgrade custom modules and Odoo core simultaneously — adapt Odoo core first, then fix custom modules.
- ❌ Don't: Run OpenUpgrade against production directly — always test on a staging copy first.
Limitations
- Covers v14–v17 only. Versions v13 and older have a fundamentally different module structure and require manual migration.
- Enterprise-exclusive module changes (e.g.,
sign,account_accountant) may have undocumented breaking changes not included in OpenUpgrade. - The Odoo.sh automated upgrade path has a separate workflow (managed from the Odoo.sh dashboard) not covered here.
- OWL JavaScript component migration (legacy widget → OWL v16+) is a complex front-end topic beyond the scope of this skill.