Skip to content
Odoo Migration

Odoo Migration: How to Handle Custom Reports and Dashboards in the New Version

A practical guide for CIOs and ERP consultants on migrating custom Odoo reports and dashboards. Learn how to assess compatibility, refactor QWeb and XML templates, manage dependencies, and validate data integrity during version upgrades.

8 min readSysGenPro Editorial
Odoo Migration: How to Handle Custom Reports and Dashboards in the New Version

Direct Answer: How to Handle Custom Reports and Dashboards in Odoo Migration

Handling custom reports and dashboards during an Odoo migration requires a systematic approach to assess compatibility, refactor code, and validate data integrity. You cannot assume that custom QWeb templates, XML view definitions, or Python report logic will migrate automatically without errors. The primary risk is silent data corruption or broken rendering logic that only appears after the upgrade. The recommended approach involves creating a dedicated staging environment, performing a dry-run upgrade, auditing all custom modules for deprecated APIs, and executing rigorous regression testing on report outputs. This process ensures that financial statements, operational dashboards, and compliance reports remain accurate and functional in the new version.

Assessing Source and Target Version Compatibility

Before touching any code, you must verify the compatibility between your current Odoo version and the target version. Odoo releases often introduce breaking changes in the ORM, view inheritance mechanisms, and report rendering engines. For example, changes in how QWeb templates handle context variables or how XML views inherit from base modules can break custom reports. You must consult the official Odoo release notes for both the source and target versions to identify deprecated fields, removed methods, and changed security rules. This assessment is critical because custom reports often rely on specific model fields that may have been renamed or removed in the new version.

Identifying Deprecated APIs and Fields

Custom reports frequently use Python code to fetch data or manipulate values before rendering. If your custom modules use APIs that have been deprecated or removed in the target version, the reports will fail. You should scan your custom code for calls to deprecated methods, such as old ORM patterns or removed helper functions. Additionally, check for fields in your report templates that reference model fields which may have changed in name or type. This step requires a detailed code review and cross-referencing with the target version's API documentation.

Preparing the Staging Environment for Migration

A representative staging environment is essential for testing report migrations. This environment should mirror your production database structure, including all custom modules, third-party add-ons, and data volumes. You should perform a full backup of your production database and restore it into the staging environment. This ensures that your tests are based on real data, which helps identify edge cases in report logic. The staging environment should also have the same hardware specifications as production to detect performance regressions in report generation.

Configuring the Staging Database

When configuring the staging database, ensure that all custom modules are installed and that their dependencies are resolved. This includes both Odoo core modules and third-party add-ons. You should also configure the same user roles and access rights as in production, as security rules can affect which data is visible in reports. This setup allows you to test reports from the perspective of different user groups, ensuring that data visibility and permissions are maintained after the upgrade.

Refactoring Custom Report Templates

Once the staging environment is ready, you can begin refactoring custom report templates. This involves updating QWeb templates to align with the new version's syntax and best practices. You may need to adjust how data is passed to templates, how loops are handled, or how conditional logic is applied. For XML views, you must ensure that inheritance paths are correct and that any overridden fields are still valid. This refactoring process is iterative and requires frequent testing to catch errors early.

Updating QWeb and XML Definitions

QWeb templates are the backbone of Odoo reports. In newer versions, the way templates are rendered and how they interact with the ORM may have changed. You should update your QWeb templates to use the latest syntax and avoid deprecated tags. Similarly, XML view definitions must be updated to reflect any changes in the base module's view structure. This includes adjusting field names, widget types, and view inheritance attributes. These updates ensure that your reports render correctly and efficiently in the new version.

Managing Module Dependencies and Add-ons

Custom reports often depend on other modules, including third-party add-ons. During migration, you must verify that all dependencies are compatible with the target version. If a third-party add-on is not yet available for the new version, you may need to delay the upgrade or find an alternative solution. You should also check for conflicts between custom modules and core modules, as these can cause unexpected behavior in reports. Managing dependencies is a critical step in ensuring a smooth migration.

Resolving Dependency Conflicts

Dependency conflicts can arise when two modules try to modify the same view or field. This can lead to broken reports or errors during the upgrade process. You should use Odoo's module dependency graph to identify potential conflicts and resolve them before proceeding. This may involve adjusting the order in which modules are installed or modifying custom code to avoid conflicts. Resolving these issues early prevents major problems during the cutover phase.

Testing Report Outputs and Data Integrity

After refactoring and resolving dependencies, you must thoroughly test all custom reports and dashboards. This includes verifying that data is displayed correctly, that calculations are accurate, and that formatting is consistent. You should compare report outputs from the old and new versions to identify any discrepancies. This testing phase is crucial for ensuring that your reports remain reliable and trustworthy after the migration. It also helps identify any remaining issues that need to be addressed before going live.

Performing Regression Testing

Regression testing involves re-running existing tests to ensure that new changes have not broken existing functionality. For reports, this means testing a wide range of scenarios, including different data sets, user roles, and report types. You should also test edge cases, such as empty data sets or large data volumes, to ensure that reports can handle them without errors. Regression testing helps build confidence in the stability of your custom reports after the upgrade.

Planning Cutover and Rollback Strategies

A well-defined cutover plan is essential for a successful migration. This plan should include a detailed timeline, clear responsibilities, and go/no-go criteria. You should also have a rollback strategy in place in case the upgrade fails. This includes having a verified backup of the production database and a documented process for restoring it. The cutover plan should also include communication protocols to keep stakeholders informed of the progress and any issues that arise.

Defining Go/No-Go Criteria

Go/no-go criteria are the conditions that must be met before proceeding with the cutover. These criteria should include successful completion of all testing, resolution of critical bugs, and sign-off from key stakeholders. You should also define the conditions under which you would trigger a rollback, such as major data loss or critical report failures. Having clear criteria helps ensure that the decision to proceed or roll back is based on objective data rather than pressure or uncertainty.

Post-Migration Stabilization and Monitoring

After the migration is complete, you should monitor the system closely for any issues that may not have been caught during testing. This includes monitoring report generation times, error logs, and user feedback. You should also have a support team available to address any issues that arise quickly. Post-migration stabilization is an ongoing process that continues until the system is fully stable and users are comfortable with the new version.

Monitoring Performance and Errors

Performance monitoring is critical for ensuring that reports continue to generate quickly and efficiently. You should track key metrics such as report generation time, database query performance, and server resource usage. You should also monitor error logs for any new errors that may indicate issues with custom reports. This monitoring helps identify and resolve issues before they impact users or business operations.

PhaseKey ActivitiesResponsible RoleSuccess Criteria
AssessmentReview release notes, identify deprecated APIsERP ConsultantCompatibility report completed
Staging SetupRestore production DB, install modulesIT AdministratorStaging environment mirrors production
RefactoringUpdate QWeb templates, XML viewsDeveloperCode compiles without errors
TestingRegression testing, data reconciliationQA TeamAll reports match expected outputs
CutoverFinal backup, upgrade executionProject ManagerSuccessful upgrade with no critical errors

Common Pitfalls and How to Avoid Them

One common pitfall is assuming that custom reports will work without changes. This often leads to broken reports or incorrect data after the upgrade. Another pitfall is insufficient testing, which can result in issues being discovered only after going live. To avoid these pitfalls, you should adopt a proactive approach to migration, including thorough assessment, refactoring, and testing. You should also involve key stakeholders early in the process to ensure that their needs are met and that they are prepared for the changes.

  • Do not skip the assessment phase; always verify compatibility with official documentation.
  • Use a representative staging environment to test with real data.
  • Refactor all custom code to align with the new version's APIs and best practices.
  • Perform rigorous regression testing to catch issues early.
  • Have a clear rollback plan in place in case of failure.

Conclusion: Ensuring Reporting Continuity

Migrating custom reports and dashboards in Odoo is a complex but manageable process if approached systematically. By assessing compatibility, preparing a robust staging environment, refactoring code, and testing thoroughly, you can ensure that your reports remain accurate and functional in the new version. This not only protects your business data but also maintains operational continuity and user confidence. Remember to consult official Odoo documentation for version-specific details and to involve all relevant stakeholders in the migration process.

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.

01Do custom Odoo reports migrate automatically?

No, custom reports do not migrate automatically. They require manual review, refactoring, and testing to ensure compatibility with the new version's APIs and data structures.

02How do I test custom dashboards before upgrading Odoo?

You should test custom dashboards in a staging environment that mirrors your production database. This allows you to verify data accuracy, rendering, and performance before the actual upgrade.

03What are the common errors in Odoo report migration?

Common errors include broken QWeb templates, deprecated API calls, missing fields, and security rule mismatches. These can lead to rendering failures or incorrect data display.

04Can I use old QWeb templates in newer Odoo versions?

Old QWeb templates may not work in newer versions due to syntax changes or deprecated tags. You should update them to align with the new version's best practices.

05How long does it take to migrate custom Odoo reports?

The time required depends on the complexity and number of custom reports. It can range from a few days to several weeks, depending on the scope of refactoring and testing needed.

06What is the best way to backup Odoo report configurations?

The best way to backup Odoo report configurations is to export the custom modules and their associated files, including QWeb templates and XML views. You should also backup the database to ensure data integrity.

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