← All projects
Architecture · Data migration · Odoo 17
One domain, three databases, zero lost history
A public website for customers and a separate ERP for each branch — behind a single address.
Client
Saigon Car Care
Platform
Odoo 17 Community, PostgreSQL, Nginx, Linux
Components
Public website & booking · two branch ERPs · request routing · staff access layer · automated backups
My role
Solution architect & implementer
The challenge
Each branch needed its own books, stock and staff, yet customers should see one brand and one website. Both branches' live data sat in an Enterprise instance whose licence had expired, so the move to Community had to happen without losing a single document.
Architecture
- Three databases: a public website database (rebuilt company site, blog and online booking) and one ERP database per branch.
- Request routing module loaded server-wide: visitors are always served the website, while staff are directed to their branch database — all under one domain with SSL.
- Staff access layer in front of the back-office login, with database-manager endpoints blocked at the web-server level and a controlled path for the Odoo mobile app.
- Operations: isolated system services per instance, nightly backups of all databases with seven-day retention, and written runbooks for the client.
Enterprise → Community migration
- Restored each branch's production dump, removed Enterprise-only modules safely and remapped the legacy custom module to the new workshop suite.
- Ran a full module upgrade, then reconciled orders, invoices, payments and stock against the source.
- Kept the previous databases and file stores as dated fallbacks before switching over.
- Replicated the management dashboard from one branch to the other so both owners read the same KPIs.
Outcome
No licence cost, no lost history, and a structure that adds a new branch by cloning a database rather than rebuilding a system.
Discuss a similar project