Drupal Migration principles
The Extract Transform Load (ETL) pattern
Operation | Plugin type | Description | Examples |
---|---|---|---|
Extract | source | Data input. Source id. | SQL, CSV, XML/RSS, JSON, Spreadsheet, ... |
Transform | process | Maps values, transforms data. Chainable | default_value, static_map, skip_on_empty, ... |
Load | destination | Drupal entities or tables. Maps source id with destination id. Supports rollback. | node, term, media, file, ... |
Migration "templates"
Yaml files that are containing the ETL plugin definition + meta data.
Runners
Migration can be runned via the Drupal UI or via Drush.
Event subscribers and hooks
- React to a migration event
- Altering migrations: hook_migration_plugins_alter()
- Alltering data while running migrations: hook_migrate_prepare_row() and hook_migrate_MIGRATION_ID_prepare_row()
Getting started documentation
- Write your first Drupal migration
- Getting started with Drupal 8 migrations
- An Overview for Migrating Drupal Sites to 8
Going further
- Drupal.org documentation
- Understanding Drupal - Migrations: 31 days of Drupal migrations
- Drupalize.me - Migrations
Talk about migrations
- Slack migration channel
- Meeting: every Thursday and alternates between 14.00 and 21.00 UTC.