To expand on the “Going forward” section of my last blog post, there’s still a lot of work to be done to get the migration ecosystem for Drupal 8 up to the level it was for Drupal 7 - as well as taking it beyond, as I believe the D8 architecture enables far more powerful and flexible tools. As an independent consultant, I have a more flexible schedule and more time for pure community work, but with great flexibility comes great… dithering.
For those of you using the migration system under Drupal 8.0.x, with Drupal 8.1 scheduled to release tomorrow, let’s take a look at where the migration ecosystem now stands. We’ll discuss the biggest core API change, then how moving to 8.1 affects various use cases.
Migrations are now plugins
As a newly-minted midwestern Drupal shop, having this year's MidCamp taking place the very week of my transition was irresistible. So, on St. Patrick's Day I hopped on the Saluki to Chicago (alas, too late to see the green river). I did, however, arrive in time to catch a couple hours of the training day sprint, where I met dawehner face-to-face for the first time (one of the great things about cons and camps is, of course, putting faces to names). Topped off the day with a meat & three at County BBQ - their brisket was if anything even more tender than Pat's back home in Murphysboro, but not quite as tasty.
All things must pass... After four and a half years with Acquia, the time is ripe for me to return to the consulting world. I've resurrected a pre-Drupal d.b.a., Virtuoso Performance, and will be doing Drupal migration consulting under that moniker going forward. I appreciate my time at Acquia - I've learned a lot, and worked with some great people - but I miss the freedom and flexibility of consulting.
Business modelsGenerally, in the past I've been involved in migration projects from end-to-end:
- Analyzing source data, and working with site-builders and stakeholders to work out what legacy data maps to what Drupal entities.
- Architecting the migration implementation - figuring out an optimal class hierarchy, constructing the initial implementation, etc.
Now that Drupal 8.0.0 is released, let's take a look at all the components of the Drupal migration ecosystem and where they stand now. To provide context to those familiar with migration under Drupal 7, I will show where the pieces came from. First, general migration support:
|Basic migration framework||migrate (contrib)||migrate (core), plus destination plugins in core modules||Experimental|
|General-purpose drush commands||migrate (contrib)||migrate_tools (contrib)||The most common commands (ms, mi, mr, etc.) are working|
For anyone currently using the migrate_tools (drush and UI tools for managing migrations) or migrate_source_csv (CSV source plugin) submodules of migrate_plus with their Drupal 8 migration projects, a heads-up - they're being split off into separate projects.
What's happeningNew projects have been created for migrate_tools and migrate_source_csv. The plan is to create real (beta or RC) releases for these projects by next Monday, November 16. On that day, a release of migrate_plus will be cut that no longer contains those two modules.
What do I do about it?
So, perhaps you've been reading Upgrading to Drupal 8 using the UI and thinking "hey, what about us cool kids who use Drush for everything?". Or, maybe you just know drush is better than a UI for running long processes like migrations. Well, this blog post is for you... We do have drush commands for running and rolling back upgrades, currently in the migrate_upgrade module (but which should land in Drush itself by Drupal's 8.1 release at the latest).
Now that the second Drupal 8 release candidate (RC2) is available (with a significant fix for those upgrading from Drupal 6), it's time to start planning for your upgrade from Drupal 6 or Drupal 7. As I previously wrote, the migration system is "experimental" in 8.0, and at this time (mid-October 2015) the tools for upgrading are in a contributed module, Drupal Upgrade. The plan is that the upgrade path will be fully supported in core for Drupal 8.1 - to reach that goal, however, we need the path to be tested on a wide variety of sites in the meantime. So, we encourage everyone with a Drupal 6 or Drupal 7 site to start testing the upgrade path today - you don't want Drupal 8.1 to come out and only then discover your site has some quirk that's not fully accounted for. Even better, you might fight the upgrade path works just fine for your site and you can upgrade in the Drupal 8.0 timeframe! The current documentation for performing your upgrade from Drupal 6 or 7 to Drupal 8 is on drupal.org - I'll walk through the process as it exists today, but should you be referring to this blog post after October 2015, be sure to review the official documentation for any changes. This post explains running the upgrade process through the Drupal 8 web interface - if you'd prefer to use Drush, please see Upgrading to Drupal 8 using Drush.
It's been a breathless past several weeks in Migrateland - with the core committers as a whole focused on trimming the criticals list for Drupal 8 to zero, Angie "webchick" Byron has given quality time to help the Migrate team get unblocked, triggering a flurry of activity. All along I've meant to post a status update, but things have been moving so fast it's been "well, after this next commit..." Let's review where we stand at the moment, as of September 18, 2015.
Upgrade pathFrom the initial decision to replace the traditional update-in-place (update.php) approach to major version upgrades with a migration-based (import into a fresh site) approach, it was made clear that the initial Drupal 8 release would not be blocked on the upgrade path. If the upgrade path was not "ready", Drupal 8.0.0 would release without it and be available for building new sites only. The plan was as Drupal 8 approached RC status the decision would be made over migration support in 8.0.0. That decision has been reached and published. By all means go ahead and read the official policy as well, but tl;dr: the migrate API and the Drupal 6 upgrade path (and possibly the Drupal 7 upgrade path as well) should be part of the Drupal 8.0.0 release, but marked as "Experimental".
A quick update on where the migration-related modules I maintain on Drupal 7 (migrate, migrate_d2d, and wordpress_migrate) stand now, to help set people's expectations of the level of support they can expect in the issue queues. There are two main points:
- I am now officially working full-time on migration in Drupal 8, for the time being (I'll have a blog post with details on that work shortly).
- I feel that the Drupal 7 migration modules are pretty much functionally complete.