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:
- Introduction to Migrations with Drupal 8
- Preparing for a Migration
- Migrate System: Terms and Concepts
- Core Migration Modules
- Migration-Related Contributed Modules
- Prepare for a Drupal-to-Drupal Migration
- Use Upgrade Status and Contrib Tracker
- Check for Alterations with Hacked
- Common Issues with Migrations
- Drupal-to-Drupal Migration UI
- Drupal-to-Drupal Migration with Drush
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.
Comments
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, seecore/modules/user/migration_templates
for an example.Ideally, these plugins should be added to the module that provides your entity definition in Drupal 8.