Odoo 15 to 19 Migration
Jumping from Odoo 15 to 19 crosses four years of platform evolution in one move, and it’s a jump we specifically know: we’ve carried live manufacturing accounting customisations across exactly this span. Version 15 is now outside Odoo’s support window, which makes this migration a security decision as much as a feature one.
Done as one rehearsed jump, 15 to 19 is very achievable, and the payoff is substantial.
What moves, and how
- What changed under the hood. Odoo 16 onward brought major performance work (16 was the fastest Odoo to date at release, and 17-19 continued it), the completed OWL JavaScript framework, and a substantially redesigned interface from 17. Custom frontend code from 15 needs real porting attention; backend ORM code ports more gently.
- Accounting and invoicing gains. Years of accounting refinement land at once: better bank reconciliation flows, improved reporting, and maturing e-invoicing/Peppol support that increasingly matters for EU trade.
- Feature absorption check. Plenty of 15-era customisations exist because standard Odoo couldn’t do something that 19 now does. The audit phase retires those, and that’s pure win: less code, cheaper future upgrades.
- Third-party module reality. Every OCA and paid module in your stack needs a 19-compatible version or a replacement plan. We map this in the audit, because one orphaned module can gate the whole project.
- Our track record on this span. Real-time WIP accounting logic we built has run live from 15 through 19, ported at each step without breaking a month-end. That’s the depth this jump sometimes needs, and we have it.
How a version upgrade runs
- Upgrade audit first. Every customisation, third-party module and data object inventoried and sorted: port it, drop it, or replace it with what newer Odoo now does natively. The audit report is the basis for the quote, and it’s yours whether or not you proceed with us.
- Fixed quote with an hours breakdown per module. The number arrives after the audit, not before, because guessing at an upgrade is how projects overrun. Deprecated features get flagged as decisions rather than surprises at go-live.
- Full rehearsal on staging with production data. The migration runs end to end on a staging copy, and your team runs real workflows against a sign-off checklist until nothing surprises them.
- Reconciliation before trust. Record counts and value checks per model prove the data crossed intact. Evidence, not assurance.
- Planned cutover with a rollback path. A scheduled window around your trading calendar, a step-by-step runbook, and a tested way back if the window goes wrong.
Common questions
Should we go 15 to 17 first, then 19 later?
How long does 15 to 19 take?
Is our 15 data at risk in a four-version jump?
Not sure where to start? Book a free discovery call and we’ll map your current setup, or request a free Odoo health check if you’re already running Odoo.