Back to top

The Myths, Musts and Migraines of Migrations

Speakers
Session type
Session
Level
Intermediate
Track
Development
Description

How often do you meet a new client that does not have a website yet? Practically every organisation has an online presence, often not Drupal, sometimes with lots of content that must not be left behind when a new site is built. In that case, a data migration is unavoidable.

Migrations are complex things. You will encounter different data sources such as files and databases. Usually there are dependencies and references between different types of content. Dirty, incomplete, duplicate or inconsistent data is the rule rather than the exception. Existing data must be massaged into the new format.

The good news is: Migrations may be complex, but thanks to Drupal's Migrate API, the basics are not difficult to learn.

In this session we will explore the Migrate system in D8 core and the contrib modules you'll want to add. I will focus on non-Drupal to Drupal migrations. From a high-level overview of the source-process-destination flow, we will zoom in on the details: How do you define a migration in YAML files? How to link migrated data together? How does a migration fit into the rest of the development process? How does one write custom migrate plugins? How to judge the quality of the supplied data?

Every migration is tailor-made and after this session you should be ready to get started with your own migration, tailored to the needs of your client. Knowledge of the Migrate API is not needed, but I assume knowledge about Drupal's general architecture and the ability to read YAML and PHP code. Being able to say the title of this session five times fast is a plus ;-)

---

PS. Note to the session selection committee: This talk will be given for the first time at the DrupalJam in The Netherlands, so when the Dev Days come it should be even better. I categorized my session as "intermediate" but I'm not quite sure if it is intermediate or advanced. Feedback from the DrupalJam audience should teach me how the difficulty is perceived. In case you have a preference for either intermediate or advanced sessions, for instance to balance your program, please let me know and I will adjust the difficulty level.