Migrate Odoo 15 to 17
Last updated: March 2026
Migrating Odoo Community Edition from version 15 to 17 involves 281 models added or removed, 47 module merges, and 80 field renames. OCU automates this entire process — upload your database backup and download a production-ready database running Odoo 17.
New to Odoo upgrades? Start with our guide on how to upgrade Odoo Community Edition, which covers the options, the preparation and the steps that apply to every version.
What changes
Between Odoo 15 and 17, the following major changes occur: 21 model renames, 296 constraint changes, and 80 field renames, alongside the 281 models added or removed.
Counted from the Odoo source of each version and from the OCU migration mappings, step by step; Odoo’s internal test modules are left out because they never exist in a production database. Multi-step paths add up their steps.
- Two-step migration handled automatically. OCU chains 15→16 and 16→17 into a single operation. Upload once, download an Odoo 17 database. No manual intermediate steps required.
- Loyalty rework + messaging overhaul in one pass. Combines the Odoo 16 coupon-to-loyalty conversion and payment.acquirer to payment.provider rename with the Odoo 17 messaging restructuring (mail.channel to discuss.channel). Both are handled sequentially.
- 47 modules consolidated. Across both steps, 47 modules are merged into their parent modules. Loyalty, EDI, messaging, accounting, and POS modules are all simplified.
- Odoo 15 has been end of life since October 2024. Community Edition 15 no longer receives security patches. This two-step path gets you to a currently supported version in one upload.
What changes in detail
Here is a detailed breakdown of the structural changes between Odoo 15 and 17:
Step 1: Odoo 15 to 16
- Coupons rebuilt as loyalty programs. coupon.program, coupon.reward, and coupon.rule become loyalty.program, loyalty.reward, and loyalty.rule. Gift card data merges in as a loyalty program type.
- payment.acquirer becomes payment.provider. The payment model is renamed across the codebase, along with payment.token, payment.transaction, and the new auto-installed account_payment module.
- 23 modules merged, 42 fields renamed. fetchmail folds into mail, six EDI submodules consolidate into account_edi_ubl_cii, and pad merges into web_editor. Key renames include stock.move.line.product_qty to reserved_qty and the loyalty and payment field families.
- Translations move to JSONB. Odoo 16 removes the ir_translation table — translated field values move into JSONB columns directly on each model.
Step 2: Odoo 16 to 17
- Messaging system overhaul. mail.channel is replaced by discuss.channel with new models for members (discuss.channel.member) and RTC sessions. All channel data, membership, and message history are migrated to the new structure.
- note module becomes project_todo. The standalone note module is absorbed into the project app. Note records become project tasks with a special todo type.
- 24 modules merged and 38 fields renamed. Accounting, POS, and localization modules consolidated. Key renames include project.task.planned_hours to allocated_hours and stock.move.quantity_done to quantity.
- Alias domain architecture introduced. The mail.alias.domain model is created for managing email alias domains per company, replacing the system parameter approach.
Cumulative database changes
- 80 field renames across both steps. The 15 to 16 step renames 42 fields (loyalty, payment, analytic), and the 16 to 17 step renames 38 more (project, stock, sales). All domain references, filters, and server actions are updated at each step.
- 47 modules consolidated. Across both steps, 47 modules merge into their parent modules. This includes the loyalty/gift card/EDI consolidation in v16 and the accounting/POS/localization consolidation in v17.
- 296 constraint changes. New CHECK and UNIQUE constraints are added across both steps. Data is validated at each step before constraints are applied, with automatic fixes for violations.
- Two architectural shifts in sequence. The database goes through two major changes: first the loyalty/payment rework and ir_translation to JSONB conversion (v16), then the messaging restructuring and alias domain system (v17). Each step is validated before proceeding to the next.
Migration path
This is a 2-step migration handled automatically. You upload a version 15 backup and download a version 17 result — no intermediate steps required.
- Step 1: 15 → 16 — 147 models added or removed, 23 module merges, 138 constraint changes.
- Step 2: 16 → 17 — 134 models added or removed, 24 module merges, 158 constraint changes.
Before you migrate
- Back up your database. Create a fresh backup from Odoo’s database manager (Settings → Database Manager). The .zip format includes your filestore.
- Note your installed modules. Check Settings → Apps for any third-party or custom modules. These will need updated versions for Odoo 17 after migration.
- Run a test migration first. Test migrations are free and unlimited. Verify the result before committing a production credit.
- Plan your custom module updates. OCU handles standard Odoo modules. Custom or third-party modules need separate updates for Odoo 17 compatibility.
How it works
- Upload your .zip, .sql, or .dump backup. We auto-detect the source version.
- Migrate. We handle schema changes, module merges, field renames, and data migration across all 2 steps.
- Download your upgraded backup, ready for Odoo 17.
What OCU handles automatically
- Schema changes. Column types, table renames, new required fields — all structural database changes are applied automatically.
- Module merges. When Odoo consolidates modules between versions, OCU updates the module registry and migrates data to the new locations.
- Field renames. Fields that change names between versions are renamed in the database, including references in domains, filters, and server actions.
- Constraint validation. New CHECK and UNIQUE constraints are validated against your data, with automatic fixes for common violations.
- View updates. Inherited views are reset so Odoo 17 can reload them from the updated XML definitions.
- Filestore. Your attachments, images, and documents are preserved and included in the output.
Pricing
Test migrations are free and unlimited — run as many as you need to validate the upgrade. The output is neutralized (emails disabled, crons off) so it’s safe to explore but not for production use.
Production migrations cost one credit (99€), charged only when the migration completes successfully. If the migration fails, no credit is consumed. One credit covers the full path regardless of how many steps are involved (this 2-step migration costs the same as a single-step one).
Frequently asked questions
- Can I skip Odoo 16 and go directly from 15 to 17?
- You don’t need to install Odoo 16 separately. OCU automatically chains the migration: your database is first upgraded to 16, then to 17, in a single operation. You upload a v15 backup and download a v17 result.
- How long does a 15 to 17 migration take?
- Since it runs two migration steps internally, expect roughly double the time of a single-step migration. A typical database under 1 GB completes in 10–30 minutes. Run a free test migration to see the exact time for your database.
- Why not wait and migrate straight to a newer version later?
- Odoo 15 has been end of life since October 2024 — it no longer receives security patches. There is no benefit to staying on 15 longer. OCU supports jumping straight to 18 or 19 from 15 as well, in one operation.
- What file formats are supported for upload?
- OCU accepts .zip backups (the standard format from Odoo’s database manager, which includes the filestore), as well as plain .sql and .dump (pg_dump) files. The .zip format is recommended because it preserves your attachments, images, and documents.
- Do I need to install anything on my server?
- No. OCU is a fully hosted service. You upload your database backup through the browser, the migration runs on our infrastructure, and you download the result. No software installation, no server access, no Docker setup required on your end.
- What happens to my coupons, gift cards, and payment providers across two version jumps?
- Coupon programs convert to the loyalty engine and payment.acquirer records convert to payment.provider in the first step (v16), then carry through the messaging restructuring in the second step (v17) unchanged.
- Does OCU handle custom modules during migration?
- OCU migrates all standard Odoo Community modules automatically. Custom and third-party modules are kept installed with their data tables preserved, but their views are disabled to prevent compatibility errors. After migration, install updated versions of your custom modules for Odoo 17.
Other migration paths
- Odoo 15 to 16 — 147 models added or removed, 23 module merges.
- Odoo 16 to 17 — 134 models added or removed, 24 module merges.
- Odoo 15 to 18 — 436 models added or removed, 72 module merges.
- Odoo 15 to 19 — 565 models added or removed, 97 module merges.
- Odoo 15 to 20 — 751 models added or removed, 132 module merges.
Further reading
- How to Upgrade Odoo Community Edition — Step-by-step guide covering all migration approaches.
- Odoo Migration Checklist — Everything to prepare before, during, and after upgrading.
- Odoo upgrade errors — Fixes for the error messages that stop real upgrades.
- Coming from Odoo 10 to 14? — How to get an older database to 15 first.
- Pricing — Free test migrations, 99€ production credits.
Ready to migrate Odoo 15 to 17?
Free test migrations, unlimited runs. No credit card required.
Start your free test migration