Migrate Odoo v13 to v19
The most comprehensive migration path. 6 version hops, 15+ breaking changes, fully automated and validated.
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.
| Severity | Table / Field | Change | Impact |
|---|---|---|---|
| CRITICAL | account_move | type → move_type Renamed | Every invoice, bill, and journal entry query must be updated |
| HIGH | account_move | invoice_payment_state → payment_state Renamed | Payment status tracking changes for all invoices |
| MEDIUM | account_move | invoice_partner_bank_id → partner_bank_id Renamed | Bank account references on invoices restructured |
| MEDIUM | account_move | auto_post (boolean) → auto_post (selection) Type changed | Auto-posting becomes a selection with more options |
| MEDIUM | product_template | type → detailed_type Renamed | Product type classification field renamed |
| MEDIUM | hr_employee | address_home_id → private_address_id Renamed | Employee private address field renamed |
| MEDIUM | crm_lead | planned_revenue → expected_revenue Renamed | CRM opportunity revenue field renamed |
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: 3 critical changes across v13-v14, v15-v16, and v16-v17
CRM
Revenue field renamed (planned → expected)
HR
Employee address field restructured
Products
Product type and UoM fields renamed
Assets
Asset categories removed, invoice link redesigned
Post-Migration Validation
Every migration includes our automated validation suite across 12 domains.
2,317 assertions · 1,075 tables scanned
Pricing
Complex migration crossing the v15-v16 structural boundary. Every path is different — we quote after analyzing your database.
View full pricingFrequently Asked Questions
Yes. We do it through 6 sequential version hops, each validated independently. Our HBBL reference migration completed the entire v13-v19 pipeline in under 15 minutes with zero orphaned records.
Custom modules that haven't been maintained for 6 versions will almost certainly need adaptation. We identify them during our initial audit and provide a compatibility assessment before quoting.
Yes. We validate accounting integrity at every hop: balanced journal entries (debit = credit), FEC export compliance, sequential invoice numbering, and consistent tax rates. The v15-v16 analytic JSONB migration is the trickiest part — we handle it with a dedicated mapping script.
The automated pipeline runs in under 15 minutes. Add 3-5 days for initial audit, custom module assessment, and your 14-day test period. Total turnaround: typically 5-10 business days.
Yes. Every migration includes a free Data Integrity Report that identifies issues like duplicate SIRETs, malformed emails, orphaned contacts, and accounting inconsistencies. We discovered that most data quality problems predate the migration — Odoo never validated them in the first place.
Ready to migrate?
Send us your database backup. Testable instance in 14 days, or you owe nothing.
Start My Migration