The Migrate module provides a flexible framework for migrating content into Drupal from other sources (for example, when converting a web site from another CMS to Drupal). It comes with support for creating most core Drupal objects (nodes, users, comments, taxonomy terms, roles...) plus support for some contrib modules. Hooks are provided to support migration of other types of content.

The combination of the Table Wizard and Migrate modules is designed to support a migration process along these lines:

  1. Import - Table Wizard can be used to import external data into tables in your Drupal database. Any tables in your Drupal database, or in other databases on the same server, can be made available to Views for review and migration.
  2. Analysis - Table Wizard performs analysis of table data (ranges, sizes, etc.), and supports collaborative documentation of table fields.
  3. Content sets - Use the views Table Wizard creates by default for your source tables, or create more complex views joining data in multiple tables, as the basis for a content set. Configure the content set to map fields in the view to fields in Drupal objects such as nodes and users.
  4. Migration - Migrate takes rows from the content sets and creates Drupal objects from them. Migration is reversible - migrated data can be quickly backed out and migrated again. A dashboard is provided to easily manage the process. Background processing via drush is supported for large migrations.
  5. Auditing - Errors and other conditions reported during migration are flagged and can be reviewed in Views. Also, Migrate maintains mapping tables from the source data to the resulting Drupal objects, enabling the creation of comparison views.

Acknowledgements

Much of the Migrate module functionality was sponsored by GenomeWeb and The Economist. The original code was based on node_import.