Migrate Odoo v14 to v19
You've already survived the v13 renames. 5 more hops to reach the latest version.
Migration Chain
v15 → v16 structural boundary (analytic JSONB migration)
Breaking Changes by Hop
Click each hop to see the detailed changes your database will undergo.
No major breaking changes in this hop. Mostly incremental improvements and minor adjustments.
| Severity | Table / Field | Change | Impact |
|---|---|---|---|
| CRITICAL | account_move_line | analytic_account_id (M2O) → analytic_distribution (JSONB) Type changed | Analytic accounting completely redesigned. Every cost center assignment must be migrated to JSONB format |
| HIGH | account_move_line | analytic_tag_ids → (removed) Removed | Analytic tags completely removed, replaced by JSONB distribution |
| HIGH | account_asset_asset | category_id → (config on asset) Removed | Asset categories removed, configuration moves directly to asset records |
| MEDIUM | account_asset_asset | invoice_id (M2O) → original_move_line_ids (M2M) Type changed | Asset-to-invoice link changes from single to multiple entries |
| MEDIUM | account_asset_asset | state: open/draft → state: running/model Values changed | Asset status values renamed |
| Severity | Table / Field | Change | Impact |
|---|---|---|---|
| CRITICAL | account_account | user_type_id (M2O) → account_type (selection) Type changed | Account type completely restructured from a related table to an inline selection. Requires French PCG mapping |
| CRITICAL | account_account_type | (full table) → (deleted) Table deleted | Entire account type table removed from the database |
| MEDIUM | product_template | product_uom → product_uom_id Renamed | Unit of measure field renamed for consistency |
| Severity | Table / Field | Change | Impact |
|---|---|---|---|
| HIGH | (Docker) | UID 101 → UID 100 Type changed | Odoo 18 Docker image changes UID from 101 to 100 — filestore permissions break silently |
No major breaking changes in this hop. Mostly incremental improvements and minor adjustments.
Modules Affected
Accounting
Major: analytic JSONB migration (v15-v16) + account type deletion (v16-v17)
Assets
Category removal and invoice link redesign
Products
UoM field rename in v16-v17
Post-Migration Validation
Every migration includes our automated validation suite across 12 domains.
2,100 assertions · 1,050 tables scanned
Pricing
Crosses the v15-v16 structural boundary. Quoted after database analysis.
View full pricingFrequently Asked Questions
Slightly. You skip the 7 major accounting renames from v13-v14. But you still cross the critical v15-v16 boundary (analytic JSONB migration), which is the most complex single hop.
Possibly. Previous migrations sometimes leave orphaned data or incomplete field mappings. Our audit catches these before proceeding.
Starting April 2026, Odoo applies a +25% surcharge on licenses for v15 and below. Since v14 is below that threshold, migrating now avoids this penalty.
Automated pipeline: under 12 minutes. With audit and testing: 4-8 business days total.
Ready to migrate?
Send us your database backup. Testable instance in 14 days, or you owe nothing.
Start My Migration