Release Day: Drupal 8 Migration Guide, Part 1

Migration Guide

This week we are super excited to share the first part of our newest collection, Drupal 8 Migration Guide. With the recent release of Drupal 8.1.x, and the inclusion of a minimal Drupal-to-Drupal migration UI in Core, migrating older sites to Drupal 8 is a topic that's on a lot of people's minds. Having done a number of migrations, and helped to improve the migration system along the way, we know first hand that planning, preparing, and executing a successful migration can be a lot of work. We're hoping to make it as easy as possible by sharing what we know, and helping others get off on the right foot.

In this first part of the series we'll take a look at the new Migrate API in Drupal 8, cover some concepts and terminology, make a migration plan, evaluate and prepare our source Drupal site, look at the most useful contributed modules, and finally execute a Drupal-to-Drupal migration via both the UI and Drush.

This week's tutorials include:

There's more where that came from

In future additions to this series, many of which are already well underway, we'll look at:

  • Performing selective Drupal-to-Drupal migrations
  • Writing a migration plugin
  • Writing custom source, process, and destination plugins
  • Migrating from non-Drupal sources like CSV files, JSON, and custom database schemas
  • Automating processes in order to make testing and development of a migration easier
  • Handling images and other files
  • Making sure the Drupal 7 modules you maintain have a migration path

Until then, you can read Custom Drupal-to-Drupal Migrations with Migrate Tools to get an overview of this process.

Let us know if there are other migration related topics you want to learn about.

Staying up-to-date

The migration system in Drupal 8 is a moving target. The Core modules are all experimental, and there is still a lot of work happening to enhance existing features and add new ones. Which is a good thing, but it can also make it more challenging to migrate to Drupal 8 today. If you happened to work with migrations in Drupal 8.0.x you'll probably notice there's already been some major changes. Again, we want to help make it as easy as possible for everyone to start using Drupal 8 and taking advantage of all the great new features.

During the process of creating this series we've been actively involved in helping both core and contributed module development both through work that Will has done in the issue queue and by helping provide time for Mike Ryan (one of the primary architects of the system) to continue to make the tools better.

As with all of our Drupal 8 material, we're committed to keeping these tutorials up-to-date as work progresses. We'll keep an eye on the changes that are happening both in Core and with the main contributed modules and make adjustments as needed.

Related Topics: 


I've been looking all around in code and blogs and I can't see how to migrate entities in contrib modules. Nor is that subject mentioned here. Should I keep waiting or am I missing something?

Hi Matthew, That is definitely something we'll be covering in upcoming tutorials. You would probably want to write a custom source plugin for your entity. You could use one of the many examples of an entity that are in core now, like User. See core/modules/user/src/Plugin/migrate/source for an example! Once you have your source plugin ready, you can create migration templates, and map to the desired entity type, again, see core/modules/user/migration_templates for an example.

Ideally, these plugins should be added to the module that provides your entity definition in Drupal 8.

Add new comment