Migrate Odoo 15 to 18
Last updated: March 2026
Migrating Odoo Community Edition from version 15 to 18 involves 436 models added or removed, 72 module merges, and 109 field renames. OCU automates this entire process — upload your database backup and download a production-ready database running Odoo 18.
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 18, the following major changes occur: 32 model renames, 416 constraint changes, and 109 field renames, alongside the 436 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.
- Three-step migration, one upload. OCU chains 15→16→17→18 into a single operation. Upload a v15 backup, download an Odoo 18 database. No manual intermediate steps required.
- 436 model changes across 3 versions. The cumulative scope: 32 model renames, 72 module merges, 109 field renames, and 416 constraint changes. Each step is validated before proceeding to the next.
- Loyalty, messaging, and ir_property in one pass. Combines the Odoo 16 coupon-to-loyalty conversion, the Odoo 17 messaging overhaul, and the Odoo 18 ir_property to JSONB conversion — three architectural shifts applied sequentially.
- Odoo 15 has been end of life since October 2024. Community Edition 15 no longer receives security patches. This three-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 18:
Step 1: Odoo 15 to 16
- Coupons rebuilt as loyalty programs, payment.acquirer becomes payment.provider. coupon.program, coupon.reward, and coupon.rule become loyalty.program, loyalty.reward, and loyalty.rule. payment.acquirer is renamed to payment.provider across the codebase.
- 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.
- 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 and RTC sessions. All channel data and message history are migrated to the new structure.
- 24 modules merged, 38 fields renamed. Accounting, POS, and localization modules consolidated. Key renames: project.task.planned_hours to allocated_hours, 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 used in v16.
Step 3: Odoo 17 to 18
- ir_property table converted to JSONB. Company-dependent fields move from the ir_property table to native JSONB columns on each model’s table. Affects product prices, default accounts, stock locations, and dozens of other company-specific settings.
- Product configurator merged, 4 payment modules removed. sale_product_configurator folds into sale. payment_alipay, payment_payulatam, payment_payumoney, and pos_mercury are dropped.
- Inherited views cleared for reload. All inherited views have their arch_db cleared so Odoo 18 reloads them from updated XML. Website builder customizations are preserved.
Cumulative impact
- 109 field renames across three steps. 42 in the 15 to 16 step (loyalty, payment, analytic), 38 in 16 to 17 (project, stock, sales), and 29 in 17 to 18 (product configurator, accounting). All domain references and filters are updated at each step.
- 72 modules consolidated. Across all three steps, 72 modules merge into their parent modules. Covers loyalty, EDI, messaging, accounting, POS, and sales configurator.
- Three architectural shifts in sequence. The database undergoes three major changes: the loyalty/payment rework and translation JSONB conversion (v16), messaging restructuring (v17), and the ir_property to JSONB conversion (v18). Each step is validated before the next begins.
- 416 constraint changes. New CHECK and UNIQUE constraints are added across all three steps. Data is validated at each step before constraints are applied, with automatic fixes for violations.
Migration path
This is a 3-step migration handled automatically. You upload a version 15 backup and download a version 18 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.
- Step 3: 17 → 18 — 155 models added or removed, 25 module merges, 120 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 18 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 18 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 3 steps.
- Download your upgraded backup, ready for Odoo 18.
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 18 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 3-step migration costs the same as a single-step one).
Frequently asked questions
- Can I really migrate from Odoo 15 all the way to 18?
- Yes. OCU chains three migration steps (15→16→17→18) into a single operation. You upload a v15 backup and download a v18 result. Each intermediate step is validated before proceeding.
- How long does a 3-step migration take?
- Expect roughly 3x the time of a single-step migration. A typical database under 1 GB completes in 15–45 minutes. Larger databases may take longer. Run a free test migration to see the exact time.
- Why upgrade from Odoo 15 now?
- Odoo Community 15 reached end of life in October 2024 and no longer receives security patches. There is no advantage to staying on 15 — OCU handles the full jump to 18 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. 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 three version jumps?
- Coupon programs convert to the loyalty engine and payment.acquirer converts to payment.provider in the first step (v16), carry through the messaging restructuring (v17) unchanged, and through the ir_property to JSONB conversion (v18) 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 18.
Other migration paths
- Odoo 15 to 16 — 147 models added or removed, 23 module merges.
- Odoo 17 to 18 — 155 models added or removed, 25 module merges.
- Odoo 16 to 18 — 289 models added or removed, 49 module merges.
- Odoo 15 to 17 — 281 models added or removed, 47 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 18?
Free test migrations, unlimited runs. No credit card required.
Start your free test migration