Skip to content
Odoo Migration

Odoo Migration: Handling Custom Fields and Dynamic Property Mappings

A technical guide for CIOs and ERP consultants on managing custom fields, dynamic properties, and data mapping during Odoo version upgrades and migrations to ensure data integrity and operational continuity.

8 min readSysGenPro Editorial
Odoo Migration: Handling Custom Fields and Dynamic Property Mappings

Direct Approach to Odoo Custom Field and Dynamic Property Migration

Handling custom fields and dynamic property mappings in an Odoo migration requires a structured, manual-verification-heavy approach rather than relying on automatic schema conversion. The primary risk is data loss or corruption when field types change, when dynamic properties are stored in non-standard columns, or when custom modules depend on deprecated APIs. To mitigate this, organizations must perform a detailed field-by-field mapping analysis, validate data types against the target version's schema, and execute rigorous reconciliation tests in a staging environment. This process ensures that business-critical data remains intact and that operational continuity is maintained during the cutover. Success depends on early identification of incompatible fields, clear ownership of data cleansing tasks, and a documented rollback plan.

Assessment of Source and Target Version Compatibility

The first step in any Odoo migration is a thorough assessment of the source and target versions. Compatibility is not guaranteed across all versions, and specific changes in the database schema or Python API can break custom fields. You must verify the exact source and target versions against the official Odoo documentation to identify deprecated features, changed field types, and removed modules. For example, changes in how many2one or one2many fields are handled can impact custom views and security rules. It is critical to document all custom fields, their data types, and their dependencies on core or third-party modules. This assessment should be led by the ERP consultant or system integrator, with input from the IT director and business process owners. The output of this phase is a compatibility matrix that highlights high-risk fields and modules requiring code refactoring or data transformation.

Detailed Field Mapping and Data Profiling

Once compatibility is assessed, the team must perform detailed field mapping and data profiling. This involves extracting a sample of data from the source database and analyzing it for null values, inconsistent formats, and orphaned records. Custom fields often store data in ways that differ from standard Odoo fields, such as using JSONB columns for dynamic properties or text fields for structured data. The mapping document must specify how each source field maps to the target field, including any necessary transformations, such as converting dates, currency formats, or enum values. Data cleansing should be performed before migration to remove duplicates and correct errors. This step is crucial because migrating dirty data amplifies errors in the new system. The responsible roles include the data engineer for extraction and transformation, and the business analyst for validating the mapping logic against business requirements.

Field TypeSource HandlingTarget HandlingRisk LevelAction Required
Char/VarcharStandard ColumnStandard ColumnLowVerify length constraints
Many2oneForeign KeyForeign KeyMediumCheck referential integrity
JSONB (Dynamic)Flexible SchemaFlexible SchemaHighValidate JSON structure and keys
BinaryFile StorageFile StorageMediumCheck file paths and permissions
ComputedPython LogicPython LogicHighRewrite if API changed

Managing Dynamic Properties and Non-Standard Storage

Dynamic properties in Odoo are often stored in JSONB columns or in separate tables linked by a generic ID. These fields are particularly risky during migration because their structure is not enforced by the database schema in the same way as standard fields. If the target version changes how dynamic properties are accessed or stored, the data may become inaccessible or corrupted. The migration team must write custom scripts to extract, validate, and transform this data. For example, if a dynamic property key is renamed or removed in the target version, the data must be mapped to a new key or archived. It is essential to test these transformations with a representative dataset that includes edge cases, such as empty JSON objects or malformed data. The IT director should ensure that these scripts are version-controlled and documented for future maintenance.

Custom Module Refactoring and Dependency Analysis

Custom modules that define or interact with custom fields must be refactored to work with the target version. This includes updating Python code, XML views, and security rules. Dependency analysis is critical to identify which modules depend on the custom fields and which third-party add-ons may be incompatible. If a third-party add-on is not supported in the target version, the organization must decide whether to replace it, wait for an update, or remove the functionality. The refactoring process should include unit tests to verify that the custom logic works correctly with the new field definitions. The ERP consultant should lead this effort, working closely with the development team to ensure that all changes are tested and documented. This phase often requires the most time and resources, as it involves rewriting code and re-testing business processes.

Staging Environment Validation and Reconciliation

Before cutover, the migration must be executed in a staging environment that mirrors the production database. This allows the team to test the entire migration process, including data extraction, transformation, loading, and validation. Reconciliation is a critical step where the team compares the data in the source and target systems to ensure that all records are present and accurate. This includes checking record counts, summing numeric fields, and verifying that custom fields contain the expected values. Any discrepancies must be investigated and resolved before proceeding to production. The staging environment should be refreshed with a recent backup of the production database to ensure that the test is representative. The project manager should track the reconciliation results and document any issues that need to be addressed.

Cutover Planning and Downtime Management

Cutover is the final step where the migration is executed in the production environment. This requires a detailed runbook that outlines each step, the responsible person, and the estimated time for each task. Downtime should be minimized by performing the migration during a low-usage period, such as a weekend or holiday. The runbook should include steps for taking a final backup, stopping user access, executing the migration scripts, and validating the data. Go/no-go criteria must be defined, such as successful reconciliation of key business data and confirmation that critical integrations are working. If any critical issue arises, the team must be prepared to execute the rollback plan, which involves restoring the backup and reverting any code changes. The CIO should approve the cutover plan and ensure that all stakeholders are aware of the downtime window.

Post-Migration Stabilization and Monitoring

After cutover, the system enters a stabilization phase where the team monitors for issues and supports users. This includes monitoring system performance, checking for errors in the logs, and validating that business processes are functioning correctly. The team should be available to address any user-reported issues and to make any necessary adjustments to the configuration or code. Post-migration support should continue for a defined period, such as two to four weeks, to ensure that the system is stable and that users have adapted to the new environment. The IT director should review the migration results and document any lessons learned for future projects. This phase is critical for ensuring long-term success and user adoption.

Risk Mitigation and Rollback Strategy

Risk mitigation is essential throughout the migration process. Key risks include data loss, broken customizations, integration failures, and performance regressions. To mitigate these risks, the team should perform regular backups, test the restore process, and maintain a detailed rollback plan. The rollback plan should specify the steps to revert to the previous version, including restoring the database, reverting code changes, and reconfiguring integrations. The team should also define clear triggers for initiating a rollback, such as critical data corruption or system downtime exceeding a certain threshold. The CIO and CTO should review the risk assessment and rollback plan to ensure that they are comprehensive and feasible. This proactive approach helps to minimize the impact of any issues that arise during the migration.

Documentation and Knowledge Transfer

Documentation is a critical component of a successful migration. The team should document all changes made to the custom modules, the data mapping logic, and the migration scripts. This documentation should be stored in a central repository and made available to the IT team and business users. Knowledge transfer sessions should be conducted to ensure that the internal team understands the new system and is capable of maintaining it. This includes training on how to troubleshoot common issues, how to update custom fields, and how to manage the migration process in the future. The ERP consultant should lead these sessions and provide any necessary materials, such as user guides and technical manuals. This ensures that the organization is not dependent on external vendors for ongoing support.

Long-Term Maintainability and Future Upgrades

A successful migration should result in a system that is easier to maintain and upgrade in the future. This requires a clean codebase, well-documented customizations, and a clear understanding of the data model. The team should establish a process for managing future upgrades, including regular compatibility checks, automated testing, and a dedicated upgrade budget. This proactive approach helps to reduce technical debt and ensures that the system remains aligned with business needs. The CIO should review the long-term maintenance plan and ensure that it is integrated into the overall IT strategy. This ensures that the organization can continue to benefit from the ERP system and adapt to changing business requirements.

Written by
SysGenPro Editorial

SysGenPro Editorial

Platform & solutions team

Practical guidance on ERP, AI automation, cloud deployment and enterprise transformation from the SysGenPro team.

Share this article

Frequently asked questions

Common questions on this topic. Talk to our team for anything specific to your business.

01Can custom fields be automatically migrated in Odoo upgrades?

No, custom fields are not automatically migrated. They require manual mapping, validation, and often code refactoring to ensure compatibility with the target version.

02What happens to dynamic properties during an Odoo version change?

Dynamic properties stored in JSONB or non-standard columns may become inaccessible or corrupted if the target version changes how they are handled. Custom scripts are needed to transform and validate this data.

03How do I test custom field mappings before cutover?

Use a staging environment with a representative dataset. Perform reconciliation by comparing record counts and field values between the source and target systems.

04What are the risks of ignoring deprecated field types?

Ignoring deprecated field types can lead to data loss, system errors, and broken custom modules. It is essential to identify and refactor these fields before migration.

05How should I handle third-party add-on dependencies?

Verify compatibility with the target version. If incompatible, decide whether to replace, wait for an update, or remove the functionality. Document all decisions and impacts.

06What is the best way to validate data after Odoo migration?

Perform reconciliation by comparing key metrics, such as record counts and sum of numeric fields, between the source and target systems. Investigate and resolve any discrepancies.

Continue learning
View all articles
Explore the platform

Where to go next

Browse the knowledge hub

See how SysGenPro fits your business

Discuss your workflows, modules and deployment options with our team.

Back to resources