Drupal 8 8.0.2
|hook_migrate_prepare_row (Row $row, MigrateSourceInterface $source, MigrationInterface $migration)|
Overview of the Migration API, which migrates data into Drupal.
Migration is an Extract, Transform, Load (ETL) process. For historical reasons, in the Drupal migration tool the extract phase is called "source", the transform phase is called "process", and the load phase is called "destination".
Source, process, and destination phases are each provided by plugins. Source plugins extract data from a data source in "rows", containing "properties". Each row is handed off to one or more series of process plugins, where each series operates to transform the row data into one result property. After all the properties are processed, the resulting row is handed off to a destination plugin, which saves the data.
The Migrate module provides process plugins for common operations (setting default values, mapping values, etc.), and destination plugins for Drupal core objects (configuration, entity, URL alias, etc.). The Migrate Drupal module provides source plugins to extract data from various versions of Drupal. Custom and contributed modules can provide additional plugins; see the Plugin API topic for generic information about providing plugins, and sections below for details about the plugin types.
The configuration of migrations is stored in configuration entities, which list the IDs and configurations of the plugins that are involved. See Migration configuration entities below for details. To migrate an entire site, you'll need to create a migration manifest; see Migration manifests for details.
Migration source plugins implement and usually extend . They are annotated with annotation, and must be in namespace subdirectory Plugin under the namespace of the module that defines them. Migration source plugins are managed by the class.
Migration process plugins implement and usually extend . They are annotated with annotation, and must be in namespace subdirectory Plugin under the namespace of the module that defines them. Migration process plugins are managed by the class.
Migration destination plugins implement and usually extend . They are annotated with annotation, and must be in namespace subdirectory Plugin under the namespace of the module that defines them. Migration destination plugins are managed by the class.
The definition of how to migrate each type of data is stored in configuration entities. The migration configuration entity class is , with interface ; the configuration schema can be found in the migrate.schema.yml file. Migration configuration consists of IDs and configuration for the source, process, and destination plugins, as well as information on dependencies. Process configuration consists of sections, each of which defines the series of process plugins needed for one destination property. You can find examples of migration configuration files in the core/modules/migrate_drupal/config/install directory.
You can run a migration with the "drush migrate-manifest" command, providing a migration manifest file. This file lists the configuration names of the migrations you want to execute, as well as any dependencies they have (you can find these in the "migration_dependencies" sections of the individual configuration files). For example, to migrate blocks from a Drupal 6 site, you would list:
Allows adding data to a row before processing it.
For example, filter module used to store filter format settings in the variables table which now needs to be inside the filter format config file. So, it needs to be added here.
hook_migrate_MIGRATION_ID_prepare_row() is also available.