Skip to main content

Norbert’s Workshop: Mastering API Migration with Drupal Migrate Module

Migrating data from an old system to a new platform can be a complex and time-consuming process, but with the right tools and planning, it becomes much more manageable.

Recently, our Back-End Developer, Norbert, led an internal workshop where he shared valuable insights on efficiently migrating data using the Drupal Migrate module.

Through hands-on examples, he walked the team through the entire migration workflow, covering key aspects like source selection, data transformation, and final integration.

Norbert broke down the migration process using the ETL (Extract, Transform, Load) model, which the Drupal Migrate module is built around. 

norbert
norbert
This method ensures that data migration is handled in a clear and systematic way:
Extract

Data can come from various sources, including SQL databases, CSV/XML files, JSON APIs, or third-party web services.
 

Transform

In this phase, the data is mapped, modified, and adapted to match the structure of the new system.
 

Load

Finally, the data is imported into the destination system—whether it’s content, configurations, or structured entities.
 

Key Takeaways from Norbert’s Workshop
  • Choosing the Right Source: The Migrate module allows importing data from an old Drupal website, external databases, and commercial platforms through available contributed modules.
  • Planning is Crucial: Before starting the migration, identifying what data is needed and which parts can be omitted saves time and resources.
  • Optimizing Migration Performance: Some datasets can be migrated manually instead of automatically—for example, small taxonomies or individual products with limited variations.
  • Handling IDs and Dependencies: Deciding between preserving old IDs or generating new ones depends on the migration strategy. If there are existing test products or configuration settings, clearing unnecessary data before migration avoids conflicts.
  • Migration Execution with Migrate Tools: To ensure smooth migration, the process should ideally be performed at the start of the project, when no content has been added to the new system. Using tools like Migrate Plus, Migrate Tools, and Migrate Source CSV, developers can efficiently define, test, and execute migrations.
  • Grouping Migrations: With Migrate Groups, migrations can be organized more effectively, allowing developers to share configurations across multiple processes and streamline the workflow.
     
Challenges and Solutions

Complexity of SQL-Based Migrations: Writing custom SQL queries to extract data from old databases can be difficult. Instead, using pre-built plugins from Core or Contributed modules simplifies this process.

Handling Large Datasets: If migrating thousands of entities, performance optimization is critical. Techniques like tracking changes instead of reprocessing everything or using high-water properties to detect and migrate only new data ensure faster execution.

Testing and Debugging: Since migrations can be complex, running them in a local environment first before applying changes to a live system helps catch errors early.

 

Norbert highlighted several online resources and documentation to help developers master the Drupal Migrate module. 

Final Thoughts

Norbert’s workshop offered not only valuable insights into API migration but also sparked meaningful discussions and practical takeaways that helped our developers sharpen their skills and rethink their approach to future migrations.

A big thank you to Norbert for taking the time to share his expertise—we learned a lot and truly appreciated the hands-on format. We're already looking forward to the next session!

His key takeaway?

The Drupal Migrate module is powerful but requires proper planning and testing. While not always simple, when used correctly, it provides a structured and efficient way to transfer complex data between systems.