Add deploy hook to migrate images to media using migration helpers
This commit is contained in:
parent
95d27e7a4a
commit
cea389c117
2 changed files with 40 additions and 0 deletions
39
web/modules/custom/geo_upgrade/geo_upgrade.deploy.php
Normal file
39
web/modules/custom/geo_upgrade/geo_upgrade.deploy.php
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Implements migration helpers in deploy hook to help migrate images to media.
|
||||
*
|
||||
* Config updates in drutopia utilize media entities for storing images.
|
||||
*/
|
||||
|
||||
use Psr\Log\LogLevel;
|
||||
|
||||
/**
|
||||
* Move data from image fields to media entity reference fields.
|
||||
*
|
||||
* Implements hook_deploy_NAME().
|
||||
*/
|
||||
function geo_upgrade_deploy_move_images_to_media() {
|
||||
$transformations = [
|
||||
['paragraph', ['field_image'], 'field_media_image', ['image', 'slide']],
|
||||
['node', ['field_image'], 'field_media_image', ['person', 'article', 'blog', 'collection', 'gleaning']],
|
||||
// Leaving out the following for now, unless requested later
|
||||
// ['paragraph', ['field_file'], 'field_media_document', ['file']],
|
||||
// field_media_document would need to be created on file paragraph
|
||||
// ['node', ['field_upload'], 'field_media_document', ['article', 'blog', 'gleaning']],
|
||||
// new field would need to be added for generic file media (field_upload contains variety of file types)
|
||||
];
|
||||
|
||||
\Drupal::logger('geo_upgrade')->log(LogLevel::INFO, "Transformation started.");
|
||||
foreach ($transformations as $transformation) {
|
||||
[$entity_type, $image_field_names, $media_field_name, $bundles] = $transformation;
|
||||
|
||||
/** @var \Drupal\migration_helpers\MigrationHelperFieldTransformations $field_transformations_service */
|
||||
$field_transformations_service = \Drupal::service('migration_helpers.field_transformations');
|
||||
$field_transformations_service->fieldToMediaEntity($entity_type, $image_field_names, $media_field_name, $bundles);
|
||||
|
||||
$source_fields = implode(', ', $image_field_names);
|
||||
\Drupal::logger('geo_upgrade')->log(LogLevel::INFO, "Data in image field(s) $source_fields of $entity_type entity moved to $media_field_name media reference field.");
|
||||
}
|
||||
}
|
|
@ -8,3 +8,4 @@ dependencies:
|
|||
- migrate_plus
|
||||
- migrate_source_csv
|
||||
- migrate_tools
|
||||
- migration_helpers
|
||||
|
|
Loading…
Add table
Reference in a new issue