Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
- Source
- for example 'Drupal 6 nodes in a SQL database'. Or 'products in a CSV file'. Implementation: a plugin in
Plugin/migrate/source
. Will have a base class and a SQL base class. Core likely will only have SQL-derived plugins. - Process
- For example 'rename language to langcode' or 'rename field_alt_text to field_image:alt_text' which puts the alt text into the alt text subfield of image. This is a process plugin; by default we likely ship only the 'column map' plugin (default) and perhaps a 'skip' plugin so that we can indicate that certain columns are deliberately skipped.
- Destination
- For example, 'A Drupal 8 node as stored by entity API'.
- Migration
- This is a configuration entity containing the configuration for all of the above.For eg
source: id: drupal6_node process: - source: language destination: langcode - source: field_alt_text destination: image:alt_text - id: skip source: field_foobar - source: image file_plugin: fid destination: id: drupal8_node
As you can see, every process item might contain arbitrary configuration data which will be passed to the destination plugin.
- MigrateExecuteable
- This actually runs the migration: reads a row from source, runs the process plugins on it then hands over to destination.
Note: more to come! This doesn't yet contain id mapping.
Comment | File | Size | Author |
---|---|---|---|
#4 | Migration 1.1 - Current Glossary-1.png | 24.6 KB | eliza411 |
#1 | Migration - My previous understanding-1.png | 36.23 KB | eliza411 |
#1 | Migration - Current Glossary-2.png | 34.03 KB | eliza411 |
Comments
Comment #0.0
chx CreditAttribution: chx commentedUpdated issue summary.
Comment #1
eliza411 CreditAttribution: eliza411 commentedHere's how I visualized the process based on our discussions at PNWDS:
Did I understand correctly and does this revised glossary mean it would be labeled more like this? If so, I'd mostly want to know what we call the source and destination:
Comment #4
eliza411 CreditAttribution: eliza411 commentedMy refined understanding, based on clarification from chx in irc:
MigrateExecutable uses the Source, Destination, and Process defined in Migration.
MigrateExecutable reads a row at a time from Source, then passes it back and forth to Process plugins
Process ultimately returns the processed row to MigrationExecutable, which in turns writes it to the Destination.
I'm not sure the diagram is helpful, but it's closer to the process, hopefully:
Comment #4.0
chx CreditAttribution: chx commentedUpdated issue summary.
Comment #5
mikeryan