Odoo Upgrades: When to Jump, When to Stay Put
Most Odoo upgrades aren't about features. They're about debt. Here's what I've learned the hard way.
I've migrated seven businesses off Odoo. Not because Odoo is bad—it's not. But because they were running v8 on v11 logic, patched together with custom modules that nobody remembered writing.
The article talks about upgrading to the latest version. That's fine if you're on v14 and v16 is out. But I've seen companies stuck two or three majors behind, and jumping straight to latest is usually a nightmare.
Here's the real talk from my projects:
The actual upgrade pain isn't features. It's your custom code. Every major Odoo version breaks something. If you've got 50 custom modules floating around, you're not upgrading—you're rewriting.
I worked with a logistics company running v11 with eight years of custom modules. Their developer had left. Nobody knew what half the code did. Upgrading would've cost 40k in consulting fees. Instead, we migrated to ERPNext on the same PostgreSQL database, kept 80% of their workflows, and added modern APIs they actually needed. Total cost: 12k, plus they owned the data.
Security matters, but not always from new versions. Most breaches I've seen weren't from old Odoo—they were from exposed databases, weak credentials, or unmaintained custom modules. An old version running in a proper Docker setup with access controls beats a new version running on a server accessible from anywhere.
Plan migrations incrementally. Jump one major at a time. v11 → v12 → v13 → v14. Run your test suite after each. This surfaces breaking changes before they hit production.
Sometimes, don't migrate at all. If your Odoo instance is stable, your custom code is documented, and you're not missing critical features, staying put beats the risk. Technical debt is real, but migration debt is worse.
My approach now: audit first. Map dependencies. If custom code is messy, evaluate ERPNext or even building a hybrid with Node.js APIs on top of the old system. Sometimes the best upgrade is the one you don't do.
What's your Odoo situation? Legacy system or actively developed?