Your Odoo migrated. 4 hours of downtime. Guaranteed.
From a 72-hour technical audit to a clean production cutover — we de-risk every Odoo upgrade, infrastructure move and custom module migration. From version 8 to 19. No exceptions. No surprises.

The situations we fix
Every one of these is a real case we have handled — not a scenario we invented.
Your Odoo version is end-of-life
Odoo 14, 15 and 16 are no longer receiving security patches. Every day you stay on an EOL version is a day your production data is exposed. We have migrated instances from version 8 — yours is not special.
A previous agency left a technical disaster
Direct database calls instead of ORM. Undocumented custom modules with no tests. A staging environment that has never been used. We audit, document and clean before we migrate — so the new version is not built on the same quicksand.
Your custom modules are blocking the upgrade
OWL v1 widgets that break on v17. Deprecated compute methods. Hardcoded field names that no longer exist. We have seen every flavour of this — and we have fixed them all.
Your instance is too slow to work with
No indexes on the tables your queries hit most. PostgreSQL running on default config with 32GB of RAM available. Workers misconfigured for your user count. We fix the infrastructure before we migrate the version.
You need to move off your current server
On-premise to Odoo.sh. On-premise to Hetzner, OVH or AWS. One hosting provider to another. We have executed every combination — with zero data loss and a tested rollback plan every time.
Community to Enterprise — without losing your customisations
The accounting module is now Enterprise-only. Your custom modules were built on Community hooks that no longer exist in Enterprise. We map every dependency, rewrite what needs rewriting, and validate against your real business processes.
What we cover
Every technical layer — from the database to the deployment pipeline.
Version Migrations
Odoo 8, 9, 10, 12, 14, 15, 16 to 17, 18 or 19. Single-step and multi-step upgrade paths. OpenUpgrade framework for Community. upgrade.odoo.com for Enterprise. We choose the right tool for your instance — not ours.
Custom Module Migration
Python ORM adaptation to new APIs. OWL v1 → v2 widget rewrite. Direct DB calls refactored to ORM. Deprecated method replacement. Unit tests written for every migrated module — you know it works, not just that it installs.
Infrastructure & Hosting
On-premise to Odoo.sh. On-premise to cloud (Hetzner, OVH, AWS). Docker and Docker Compose setup. Nginx + SSL + reverse proxy. Multi-instance and multi-tenant configurations.
DevOps & CI/CD
Odoo.sh branch strategy (dev / staging / production). GitHub Actions or GitLab CI pipelines. Automated module deployment. Environment parity between staging and production — so go-live is never a surprise.
PostgreSQL Performance
Query analysis and index strategy. autovacuum tuning for large tables. pg_dump / restore workflow. PostgreSQL version upgrade alongside Odoo version upgrade. Connection pooling with PgBouncer. We have tuned instances with 40M+ records.
Security & Compliance
2FA enforcement per user role. IP allowlisting per environment. Audit logs for GDPR compliance. SSL/TLS configuration and renewal. Fail2ban and intrusion detection. Data residency for EU and US.
Monitoring & Alerting
Grafana dashboards for Odoo application metrics. Prometheus exporters for PostgreSQL and server health. Uptime alerting with escalation policies. Slow query detection and automated alerts before users notice.
Technical Debt Recovery
Audit of inherited codebases — undocumented modules, missing tests, direct DB calls, broken dependencies. Prioritised remediation plan delivered before any upgrade work starts. We fix the foundation before we build on it.
ERP to Odoo Migration
Sage 100, SAP B1, EBP to Odoo. Full data mapping, field-by-field transformation, staging validation, reconciliation report delivered before go-live. Historical data preserved — nothing archived, nothing lost.
The BLINDAGE Method
Our proprietary 5-step migration and DevOps process. Every client. Every time. No exceptions.
Technical Autopsy
We run our audit script against your instance before we quote anything. 72 hours later you receive a 15-page report: every installed module categorised as standard, OCA or custom, compatibility status against your target version, PostgreSQL health check, infrastructure baseline, and a technical debt register with estimated remediation effort per item. You know exactly what you have before you decide what to do with it. This audit is included in every migration we execute.
Staging Twin
We clone your production database to an isolated staging server with identical CPU, RAM and PostgreSQL version. We install the target Odoo version and run the first migration. The first 23 errors — there are always errors — are diagnosed here, not on your production system. We do not touch production until staging has passed your team's regression test sign-off.
Custom Module Surgery
Every custom module is migrated individually in order of business criticality. We adapt deprecated ORM methods, rewrite OWL v1 widgets to OWL v2, refactor direct database calls to ORM, and replace hardcoded references to renamed fields. Each migrated module is delivered with unit tests that cover its critical paths — not just a manual test we ran once.
Business Validation
Your key users test on staging for 5 days with a regression test script we prepare — typically 40 to 60 scenarios covering your critical business flows. We are available in real time to fix anomalies during the test period. Go-live is not triggered until your team signs the acceptance report. Not before.
Surgical Go-Live
Production cutover happens on a Friday evening. We freeze production, take the final database dump, run the migration, boot the new instance, execute smoke tests, and monitor for 48 hours. Downtime is contractually guaranteed under 4 hours. If we exceed it through any fault of ours, we work at no charge until it is resolved. Monday morning your team is on the new version — with us on the phone for the first 3 hours.
What you get
What every AldenSync migration delivers — by contract, not by intention.
- 15-page technical audit before we touch your instance
- Staging environment that mirrors production exactly
- Every custom module migrated with unit tests — not just installed
- Business validation on staging before any production cutover
- Maximum 4-hour production downtime — guaranteed in the contract
- 48-hour post go-live monitoring with direct access to the engineer who ran the migration
- Technical documentation of every custom module delivered at close — so the next migration costs less
Infrastructure we work with
We are not locked to one stack. We use the right tool for your situation.
What we don't take on
- Migrations without a prior audit. Every project starts with the Technical Autopsy — we do not quote a migration we have not inspected first.
- Urgent migrations with less than 3 weeks of preparation. A rushed migration is a failed migration. If you need it done in a week, we are not the right partner — and we will tell you that.
- Hosting-only without migration context. If you need someone to manage a server we did not build, we need a 2-week onboarding audit first.
"We had been on Odoo 12 for four years with three custom modules nobody fully understood. AldenSync audited the codebase, documented everything, migrated us to 18 in 8 weeks, and delivered unit tests for every custom module. We finally know what we have."
Frequently asked questions
We are still on Odoo 12. Can you migrate us directly to 18 or do we need intermediate versions?+
It depends on your custom modules. For instances with no or minimal custom code, a direct jump from 12 to 18 using OpenUpgrade chained migrations is possible and is what we recommend — fewer migration events means fewer risks and lower cost. For instances with heavy custom modules, we assess each module's compatibility path individually. Some justify an intermediate stop, most do not. The Technical Autopsy tells us which path applies to your instance before we commit to a price.
What happens to our custom modules during the migration?+
Every custom module goes through our four-step module migration process: compatibility audit against target version, adaptation of deprecated ORM methods and API changes, OWL widget rewrite if applicable, and unit test coverage for critical paths. You receive each migrated module with a migration notes document that explains every change made and why. No black box — you own the code and understand what changed.
What is the real downtime for a production migration?+
For a standard instance with a database under 50GB, production downtime is typically between 2 and 4 hours. We rehearse the cutover on staging using the final production dump and time it precisely — so you know the number before Friday evening. The 4-hour maximum is written into the contract. If we exceed it through any fault of ours, we work at no charge until the instance is live.
We had a bad migration done by another agency. Half the custom modules are broken and the documentation does not exist. Can you fix this?+
Yes — this is one of the most common situations we handle. We start with a full codebase audit: every module reverse-engineered, every direct DB call identified, every missing test flagged. We deliver a prioritised remediation plan before touching a single line of code. In most cases we can stabilise a broken instance in 2 to 4 weeks before starting the version migration.
Should we move to Odoo.sh or self-hosted?+
For most companies with 10 to 200 users and no extreme customisation requirements, Odoo.sh is the right answer: automated staging branches, built-in CI/CD, daily backups, Odoo-managed PostgreSQL upgrades, and direct support from Odoo SA. The trade-off is cost — Odoo.sh is more expensive than a Hetzner VPS at equivalent compute. For companies with strict data residency requirements, complex multi-instance architectures, or very large databases (100GB+), self-hosted on a dedicated server is the better choice. We help you make the calculation during the Technical Autopsy.
Do you provide ongoing managed hosting after the migration?+
Yes. Every migration client can continue with our managed hosting service: daily encrypted backups with 30-day retention, 24/7 uptime monitoring with Grafana dashboards, security patch deployment within 48 hours, PostgreSQL maintenance and vacuuming, and 8 hours of included technical support per month. Pricing starts at 400€ per month for a single-instance setup.
Our guarantee — in writing
Maximum 4 hours of production downtime. If we exceed it through any fault of ours, we work at no charge until the instance is live and your team confirms it works. Every migration starts with a Technical Autopsy — we do not quote, let alone execute, a migration we have not fully inspected. No exceptions.
Your Odoo version is end-of-life. Every day costs you.
Start with a 72-hour Technical Autopsy. Fixed price. We tell you exactly what you have, what it will take, and what it will cost — before you commit to anything.