The migrate module provides a flexible framework for migrating content into Drupal from other sources (e.g., when converting a web site from another CMS to Drupal). Out-of-the-box, support for creating core Drupal objects such as nodes, users, files, terms, and comments are included - it can easily be extended for migrating other kinds of content. Content is imported and rolled back using a bundled web interface (Migrate UI module) or included Drush commands (strongly recommended).
Migrate 2.7 is now available. There were a couple of significant problems with the SQL batching support added in Migrate 2.6, so if you're on 2.6 it is highly recommended you upgrade to 2.7 as soon as you can. See the issues tagged as Migrate 2.7 for full details.
For those still on Migrate 2.5 or earlier, there have been a lot of changes. The main theme with 2.6 was UX - the existing UI has been significantly rearranged, and a new API has been introduced to allow other modules to easily developed wizard-style UIs targeted to non-developers. migrate_d2d 2.1 has a new submodule providing a wizard UI, and wordpress_migrate has a release candidate making use of this new framework.
Going forward from here, Migrate 2.8 will be much less ambitious - it should be for the most part a stabilization release. Apart from potentially adding some more source and destination plugins, I feel the functional API is pretty complete - feature requests are addressing ever narrower use cases. The UI underwent much change with 2.6, however, and has more room for improvement. My focus from this point will be on Drupal 8, so while I'll do my best to fix bug reports without patches myself, feature requests are unlikely to get in without
- A patch (ideally reviewed & tested by the community),
- A justification that the feature is generally useful (and not just addressing a very narrow use case), and
- Demonstration that the desired outcome is not achievable (at least without considerable effort) using existing functionality.
The most significant changes in Migrate 2.6:
For a more complete list of changes, see the issues tagged as Migrate 2.6.
Besides the UI changes, there are significant changes around migration registration and construction that may require code changes - be sure to read the release notes carefully before upgrading.
Support for contributed modules
The place to implement migration support for a contributed module is in that module, not in the Migrate module. That way, the migration support is always self-consistent with the current module implementation - it's not practical for the Migrate module to keep up with changes to all other contrib modules.
Historically, if this did not seem practical, or as an intermediate step before submitting it to the contrib module itself, support for some contrib modules has gone into the Migrate Extras module. We're now deprecating this module - every effort should be put into integrating migration support directly into the target module.
Specialized migration modules
These modules use the Migrate framework to implement imports from specific sources.
- The Economist
- Stanford Law School
- National September 11 Memorial & Museum
- E-Business Platform for Basel Tourism
- Lifeguard Press osCommerce
- Elle Decor Lookbook App for iPad
- Andrew Morten's (drewish) slides and video from a Drupalcon Denver session explaining the Migrate module in technical terms.
- Mike Ryan's slides and video from a Drupalcon Denver session explaining the migration process in non-technical terms.
- Migrating old HTML files into Drupal, by Four Kitchens
The Migrate module is primarily maintained by Mike Ryan of Acquia.
Past sponsors include: