Odoo upgrades are painful. Here's how I handle them.
Major Odoo migrations break things. I've learned to approach them systematically instead of hoping for the best.
I've migrated enough Odoo instances to know that version jumps aren't just copy-paste operations. Odoo 19 to 20 is especially rough because they rewrote parts of the ORM and changed how custom modules load.
Here's what actually works:
Test in staging first. This sounds obvious but I see people pushing upgrades to production without testing. I always spin up a copy of their database and run the upgrade there. You find 80% of issues before they affect business.
Custom modules break. Every time. The API changes, deprecated methods vanish, permission system shifts. I go through our custom code line by line looking for calls to removed functions. Odoo's migration notes help, but they miss edge cases.
Data transforms need planning. I had a client where field types changed during an upgrade. Moving data from one field structure to another takes scripts. I write them before upgrade day, test them on staging, then execute them in sequence: backup → transform data → upgrade core → validate.
Dependencies matter. A third-party module might not be compatible with the new version yet. I audit all installed modules, check their compatibility status, sometimes write patches for legacy ones. Or I disable them, upgrade Odoo, then re-enable after validation.
Performance tuning isn't optional. New Odoo versions query databases differently. I always rebuild indexes and check query performance on staging before going live. Saved myself from a nightmare production issue twice this way.
Rollback plan required. I keep the old database snapshot for two weeks minimum after upgrade. If something breaks bad, rollback is fast and clean. Costs storage, saves sleep.
The best approach? I treat major Odoo upgrades like I treat legacy system modernization — methodical, incremental, heavily tested. Don't rush it. Two weeks of careful testing beats two days of firefighting.
I'm building Seven Suite partly because I wanted an ERP that doesn't require this much ceremony for updates. But if you're on Odoo, respect the upgrade process. It matters.