Earlier versions (Drupal 7 and 6) included a built-in update mechanism that provided in-place version updates both within the same major version (Drupal 7.3 to 7.8 for example) and between major versions (Drupal 6.12 to Drupal 7.4 for example). That required doing updates in place, putting the new codebase on top of the old database.
In Drupal 8, there are two separate systems for these two tasks. For updating an existing Drupal 8 site, you should still use the in-place (update.php) mechanism. On the other hand, migrating from earlier major versions (Drupal 6 and 7) as well as other systems is done with migration. This documentation is about the migration system.
This system allows to migrate content and configuration between two independent sites. The system is largely inspired by the work of the Drupal 7 Migrate and Drupal-to-Drupal Data Migration modules. It is a much more robust and extensible system than in previous major versions of Drupal core.
The functionality of the new Migrate, Migrate Drupal and Migrate Drupal UI modules included in core greatly expands on the functionality of previous versions of the Migrate module in that they now handle both site configuration and content.
Upgrading from Drupal 6 and Drupal 7 sites is now possible, with support for:
- Drupal 6: core + CCK + Link + Email + Phone + ImageCache modules.
- Drupal 7: only content, users, taxonomy, blocks, menus, filter formats (more coming soon - ).
Migrations that are not yet supported include:
- Views ( )
- Multilingual content ( )
- Node, user, entity references (
How to find the migration modules and tools
|Name||Where is it?||What does it do?|
|Migrate||Drupal 8 core module||Provides the underlying API for migrating configuration and content to Drupal 8. The migration source may be a different system altogether.|
|Migrate Drupal||Drupal 8 core module||Provides the classes specifically needed to migrate configuration and content from a Drupal source site to Drupal 8 as a special case of Migrate.|
|Migrate Drupal UI||Drupal 8 core module (in 8.1+). Also a contributed module for earlier versions of Drupal 8.||Provides the tools necessary for performing an upgrade from Drupal 6 or Drupal 7 to Drupal 8 — both a simple user interface (at /upgrade) as well as the migrate-upgrade drush command.|
|Drupal Upgrade||Contributed module||Provides the migrate-upgrade drush command.|
|Migrate Tools||Contributed module||Provides optional drush (migrate-status, migrate-import, migrate-rollback, migrate-stop, migrate-reset-status, migrate-messages, migrate-fields-source) and UI tools for managing your migrations.|
|Migrate Plus||Contributed module||Provides APIs for grouping migrations as well as a facility to manipulate incoming source data in migrations as well as code examples to build custom migrations.|
|Migrate Manifest||Contributed module||Provides a drush command for running template-based SQL migrations from a manifest file.|
|Migrate UI||Contributed module||Provides a user interface for editing and configuring migrations in general (not just Drupal sources).|
|Migration plugins||Within core modules and contributed modules||Provide mapping for the configuration and content of the respective module. For example, the migration plugins that handle taxonomy vocabularies and terms are located in the core taxonomy module.|
Developer documentation is available for writing your own custom migrations.