Context
A mid-market manufacturing group on Odoo v15 upgraded to v17 as part of their annual cycle. Shortly after go-live a regression in a customized MRP workflow started producing incorrect picking lists for a subset of products. The workflow had been customized by a previous integrator; the original author was unavailable.
Forward-patching required reverse-engineering the customization on v17 and was estimated at 8+ weeks. The business could not absorb the impact on picking accuracy for that long.
Challenge
Return to v15 with the data and customizations intact, and without compromising audit continuity. Two partners the client approached refused the engagement on the grounds that “Odoo doesn’t downgrade.” A third proposed a manual data re-entry which was not viable at the record count.
Approach
- Source audit. Identified every v17-only field, table, and relation. Produced a data-loss report mapping each to either a v15 target, an archive, or a discard (with client sign-off per area).
- Test migration on an isolated replica. Migrated records, customizations reworked to v15 APIs, QWeb reports forward-ported.
- UAT with functional leads from manufacturing, inventory, purchasing, and finance. Three iteration rounds.
- Production cutover in a weekend window with a rehearsed rollback.
- Hypercare for two weeks. Zero critical issues, three minor items fixed within SLA.
Outcomes
- The business was back on a stable v15 with the correct workflow.
- Data loss was zero (everything that could not carry over was archived with access preserved).
- The rollback was rehearsed but never needed.
- The client retained us on a support plan to cover the next planned upgrade window.
What made this work
- Being honest about the data-loss surface up front. UAT surprises are project killers.
- Treating the customization as a first-class deliverable. The migration was half-done without it.
- Rehearsing rollback. The value was not in using it but in having the option.
“We went to ProjoMania after two other partners refused our downgrade. They shipped it in eight weeks with a rehearsed rollback. We never needed the rollback.”