We recently launched immigrantjustice.org, a useful site that acts as a source of legal help and as a library of informational resources for immigrants and attorneys. Our task was to migrate a Drupal 6 site to Drupal 8 and provide a better user experience (UX). The site set a couple of challenges: we had to migrate a large number of files, content types and nodes in addition to restructuring and moving existing nodes into new content types. We hope to explain some of the ins and outs regarding migrations in Drupal 8 and whether it’s better to migrate, or to just start from scratch.
Drupal 8 Migration API Is More Than Just Migrations
From a technical point of view, to understand how to use the new Migrations API one needs to familiarize oneself with Drupal 8 YAML configurations and OOP (object oriented programming). Drupal 8 provides some pretty clean mechanisms/interfaces to organize and control the various stages of the migration process. In addition to the clean interfaces to perform Drupal to Drupal migrations, it has some awesome paths to import data from various sources like JSON, XML and Databases. There are also contributed modules to import from csv and recently spreadsheets!
Our strategy for immigrantjustice.org was to do the Drupal to Drupal migration by creating migration customizations for any fields that may not have migration paths for them (the date field has this issue for example) and manipulating the data so that we got everything we were seeking. Finally, we then had to export, modify and re-import any nodes that we wanted to move to new content types. The Drupal 8 migration API and set of recommended modules did it all, and really proved to be a powerful set of tools. It opened up the possibility to provide our client with some simple ways to handle content importing through collaborative spreadsheets and avoid us having to waste time clicking through the admin and creating nodes by hand.
In our opinion Drupal 8 migrations should get WAAAY more hype. The power to provide importing from various sources takes the pain out of having to add content to a site. By having it all written in code and configurations makes it easy to reuse and improve existing migrations.
Drupal 8 Migrations Can Be Quite Technical
Although Drupal provides a lot of power to manipulate data through its Migration API, there is no real graphical user interface to manage and customize migrations. Yes, there is the Migrate UI module, but even still, someone needs to code and set up the migration configurations for this to work properly. From a technical point of view this makes sense, Drupal is data driven software and data can be complex and different from one Drupal site to another. Drupal core can help cover the bases for its core set of fields and entities but not every site uses the same set of fields or has its data structured in the same way.
Is Migration A Need For Your New Drupal 8 Site?
The technical work and time that goes into doing migrations is important to consider when making the move to Drupal 8. If a site has content and data that users depend on and expect to see when they request a URL it might be important that all the content and their paths are migrated. But if there is not much data, or if from a UX and Developer point of view the data needs to be completely restructured on an existing site, it might make more sense to start from scratch and consider seeking a firm (**ehem**… wiremedia.net). A Drupal firm/developer can help you figure out a content importing process for new content and provide consultation on how to better restructure the entities and content types that will hold your data.
Drupal 8 is all about data, its core Migrate API is an unsung hero that helps take the pain out of figuring out how to manipulate data, import/migrate it, and present it in a clean and consistent manner.