When you migrate systems, you may want all your data to be transferred with zero hassle.
However, data migration is a tricky process.
If done incorrectly, it can lead to pitfalls like having your data become uncompliant, creating errors in your system, or even killing your entire implementation due to broken data.
We put together an Odoo data migration checklist so you know what not to do, what to look out for, and how to conduct a successful Odoo data migration.
Table of contents
0. Immediate no-gos when starting your Odoo data migration
1. Not adding all the data you want to keep to your migration list
3. Not knowing all your data sources
4. Using data fields with unclear or inconsistent naming
5. Not preparing and sharing data early enough
6. Not phasing your migration steps
7. Not testing thoroughly enough before go-live
How to get your Odoo data migration right
0. Immediate no-gos when starting your Odoo data migration
Before breaking down all the things to watch out for when doing an Odoo data migration, there are some basic rules that should be followed.
It’s crucial to keep these in mind, as any error is very difficult to come back from or even irreversible.
- Migrating against an SQL import instead of API: this method bypasses Odoo’s validation and security checks, causing the system to lose all certifications like fiscal certifications, audit trails, or system integrity guarantees. In complex setups, it can also make the system non-compliant with legal or industry regulations, which may make it illegal to operate
- Migrating before having access to or analysing the entire dataset in advance: you risk errors from the start, and as you add more data to the system
- Migrating in uncontrolled batches with no data visibility: if you don’t know all the data you are migrating before you start planning batches, there is no way of knowing if it’s viable to import it all
- Migrating data in a random order: you will end up facing a large amount of constraint errors, as your dataset will be unstructured, and affect your entire system
- Migrating all your data based on import and export files (.xlsx): if you make a single mistake in your .xlsx file, your entire migration will be compromised.
1. Not adding all the data you want to keep to your migration list
When putting together a migration list, it’s not uncommon for users to forget to add parts of the data they want to migrate.
Smaller and less critical datasets you might still need, e.g. employee time-off requests, can be overlooked when the main focus is on data that’s critical to how operations function.
However, missing data entries and forgetting to add all the data you want to migrate can have an impact on the implementation as a whole. It can especially impact your project’s timeline, causing delays.
To avoid this, make sure to:
- Dig into your system’s non-critical areas: click through your entire system, look at all entries, and identify any more models that need to be migrated rather than just the ones that are immediately flagged as critical for operations
- Keep your various teams accountable: make sure that every team involved in the project checks and signs the migration list, making sure that all data that they need to have migrated from each department is accounted for.
2. Ignoring data subsections
Relational data structure is crucial for a successful data migration.
For example, a company needs to migrate all its products to its new system. In the process of preparing the data, they add product templates but forget all additional models.
This means that all their products will be missing crucial data like product attributes, categories, unit of measurements, chart of accounts and more.
If any of the required related models are missing in the new system, importing the main product entry is useless.
To avoid this, make sure to:
- Keep track of all relational data models: collect not just your main data entries to migrate, but also their attributes, tags, categories, and their connections to other processes
- Filter through relational data and sort what needs to be migrated: this is a prime opportunity to sort through which data you will definitely need and which data can be removed before migration
- Double-check all data entries and subsections: make sure multiple of your team members check all the relational data models.
3. Not knowing all your data sources
Various data sources are often an issue when migrating from various software to one integrated system like Odoo.
It can be complicated to match common data identifiers when connecting data from multiple sources, like a separate CRM, accounting software, or WMS systems.
You need to know exactly where all your data comes from and make a conscious decision on what to migrate and what to leave behind.
Forgetting to migrate important data because you didn’t know it existed or in which legacy system it was stored can cause serious gaps in your new system.
It’s crucial that all data is consolidated ahead of the migration. To avoid complexity and ensure that your system remains compliant, make sure to:
- Limit the data scope to be migrated: keep in mind that not all old data will be transferred to the new system, and clearly outline exactly what data needs to be connected
- Manage internal expectations: make sure to communicate clearly to your team which data will be migrated and which will not
- Not use free text fields: if your data is added in log notes or comments and not in standard fields that can be correctly exported and migrated, your data will be lost
- Use proven identifiers (unique references that exist in both systems) that have a match of at least 99% when migrating existing data.
Data entries | Data to match against |
Creditor & debtor accounts | Customers & suppliers |
Booking accounts | Product categories |
Product codes | New product templates |
Document numbers | New Sales Order, Purchase Order, invoice templates |
ISO standards | Language, currency and country to standardise data |
4. Using data fields with unclear or inconsistent naming
More often than not, terminology used for data entries is not consistent across a system.
This can easily lead to wrong mapping of fields and models.
For example, the “barcode” field on a product could refer to an internal number in your old software and a GTIN in your new system.
Such issues are very hard to uncover once migration work is underway.
To avoid this, make sure to:
- Define an owner of each source system who can help explain and define terminology
- Get a description of each data field you want to migrate and create glossaries or lists to avoid misinterpretation
- Get example datasets from your new system as early as possible so you can see how to match the naming of your existing data fields with standard fields from Odoo.
5. Not preparing and sharing data early enough
Getting the input data structure, example dataset, or full dataset later than planned can become a major issue for your migration timeline.
Without early access to the data, you cannot accurately plan or test your migration process. This means that any issues found will delay the full migration date
To prevent this, make sure to:
- Define clear deadlines to prepare and validate data, leaving plenty of time before migration
- Remind all responsible parties early and often, before the deadlines, to prepare and validate data with enough time ahead of the migration
- Communicate any delays swiftly to everyone, as the deadline for the full migration will have to be moved if a related, prior deadline is missed.
6. Not phasing your migration steps
The larger the dataset, the longer exports and imports will take.
Since migrations typically happen right before go-live, long runtimes increase the risk of downtime or data loss.
To address this, make sure to:
- Start early: migrate older and immutable data well before the go-live date, as base data can often be migrated up to four weeks in advance
- Pre-migrate transactions: movement or transaction data older than one year can often be migrated one to two weeks before go-live
- Prioritise critical data: migrate important operational data (e.g. open transfers or orders) shortly before go-live
- Finish late: less critical data (e.g. time-off requests) can be migrated after go-live, meaning that data already migrated early can also be updated later.
7. Not testing thoroughly enough before go-live
Data migrations are complex, and attention to detail is crucial to avoid mistakes.
This is why testing is essential and should be done by multiple project stakeholders, like developers, consultants, analysts, and end users.
If your implementation partner and your key users do not test trial runs, errors will only surface after go-live, when they are far more disruptive to fix.
To avoid this, make sure to:
- Have a developer test and run a “click everywhere” bot
- Involve your partner implementation consultants or analysts in testing
- Assign testers early, manage expectations, and plan sufficient time
- Provide testers with a test list of what was migrated in each area, plus a short introduction on how to conduct the tests
- Have testers sign off on their testing to guarantee that they checked all areas and found no errors.
How to get your Odoo data migration right
We have covered the most crucial don’ts when migrating your data to a new Odoo system.
So what are the steps you should take to succeed instead?
To migrate datasets, it’s advisable to use a structured and repeatable migration process. This looks like:
1. Identifying relevant data
This step involves sorting through data from legacy systems and creating a data mapping that covers:
- What data is needed
- What data is possible to migrate
- What data is of value for the new system.
2. Extracting and cleaning up data
This process step is the customer’s responsibility and includes:
- Conducting a script-based data extraction from legacy systems
- Cleaning up data.
3. Transforming and importing data
This process step is the responsibility of your Odoo partner, who should:
- Transform & validate data
- Run a script-based import via Odoo RPC API.
4. Running migration tests
The data migration is tested by developers, implementation consultants and key users.
Both extraction & import scripts are iteratively improved after testing.
5. Final data migration
The migration process is started during go-live to ensure a consistent transition.
The legacy systems are set to “read only” to avoid errors.
3 ways to safely import data from any system into your Odoo
Once you follow these guidelines and your data is safely prepared, Odoo makes your life easy with its different data migration methods.
These methods cover different use cases with different amounts of data to migrate.
Method 1: Greenfield - for a fresh start
This option is the best when you:
- Implement Odoo for the first time
- Want to redesign processes from scratch
- Want to avoid carrying over legacy issues like poor data quality.
You’re given a clean foundation, and only essential master data is imported, like:
- Products (with attributes, variants, prices, bill of materials)
- Business partners (suppliers, customers, employees)
- Material with quantities and locations
- Accounting setup.
Method 2: Greenfield + Cutover - going live with active operations
This migration method is ideal when you’re moving to Odoo while still having ongoing sales, purchases, or production orders.
It will ensure that there’s minimal legacy baggage transferred to your new system, while you can still process orders without having to recreate an entire dataset.
To keep operations going seamlessly, you can migrate all base data and open transactional data, like:
- Sale & purchase orders (usually ones that are currently open)
- Products (with attributes, variants, prices, bill of materials)
- Business partners (suppliers, customers, employees)
- Material with quantities and locations
- Accounting setup.
Method 3: Brownfield - full system migration with complete data history
This option is the best when your historical data is critical and must be fully preserved in Odoo, either for compliance, reporting, or operational continuity reasons.
However, it is also the most expensive and time-intensive option.
You retain your full dataset, importing both master data and complete transactional history, including:
- Products (with attributes, variants, prices, bill of materials)
- Business partners (suppliers, customers, employees)
- Material with quantities and locations
- Complete sales and purchase orders
- Invoices and deliveries
- Account moves and journals
- Opportunities and other transactional records.
Set the right foundation for your Odoo data migration
A data migration isn’t about bulk transferring all your old data. Rather, it’s an opportunity for you to optimise it, to start with a clean slate in your new Odoo system.
Addressing the risks of a migration early ensures that it will run smoothly and your data integrity will be protected.
This will guarantee that your Odoo project is on track for a successful go-live.
Get expert support for a successful Odoo data migration
Reach out to our Odoo experts who can help you avoid common migration mistakes. Protect your go-live by working with a solid plan to execute and test your migration the right way.