Last updated February 4, 2016. Created on March 25, 2014.
Edited by Gábor Hojtsy, batigolix, guitarbound2015, ashish_nirmohi. Log in to edit this page.

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, on the other hand, a migration based system is introduced, which 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 and Migrate Drupal 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.

Learn how to prepare and execute an upgrade from Drupal 6 or 7 to Drupal 8 using the web interface or using Drush.

Process diagram for migration steps

Upgrading from Drupal 6 and Drupal 7 sites is now possible, with support for:

  1. Drupal 6: core + CCK + Link + Email + Phone + ImageCache modules.
  2. Drupal 7: only content, users, taxonomy, blocks, menus, filter formats (more coming soon - #2456259: [META] Drupal 7 to Drupal 8 Migration path).

Migrations that are not yet supported include:

  1. Views (#2500547: Upgrade path for Views from Drupal 6 and 7)
  2. Multilingual content (#2225775: Migrate D6 i18n nodes)
  3. Node, user, entity references (#2447727: Add migrate support for Drupal 6 node & user reference

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.
Drupal Upgrade Contributed module but proposed for core in 8.x, see #2573403: [meta] Outstanding tasks for upgrade UI 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.
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.
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.

Further Reading

Developer documentation is available for writing your own custom migrations.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.