Commit f9c7efd8 authored by Zoltan Attila Horvath's avatar Zoltan Attila Horvath Committed by Zoltan Attila Horvath
Browse files

Issue #3281055 by huzooka, minorOffense: Media entity migrations shouldn't...

Issue #3281055 by huzooka, minorOffense: Media entity migrations shouldn't migrate file IDs to media IDs
parent 4fa5046b
Loading
Loading
Loading
Loading
+19 −2
Changes for migrations/d7_file_entity.yml: 19 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -10,10 +10,27 @@ idMap:
source:
  plugin: d7_file_entity_item
process:
  uuid:
  track_changes_uuid:
    -
      plugin: migration_lookup
      source: fid
      migration: d7_file_entity
      no_stub: true
    -
      plugin: skip_on_empty
      method: process
    -
      plugin: migmag_get_entity_property
      entity_type_id: 'media'
      property: 'uuid'
  oracle_uuid:
    plugin: media_migrate_uuid
    source: fid
  mid: fid
  uuid:
    plugin: null_coalesce
    source:
      - '@track_changes_uuid'
      - '@oracle_uuid'
  uid:
    -
      plugin: migration_lookup
+19 −2
Changes for migrations/d7_file_plain.yml: 19 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -10,10 +10,27 @@ idMap:
source:
  plugin: d7_file_plain
process:
  uuid:
  track_changes_uuid:
    -
      plugin: migration_lookup
      source: fid
      migration: d7_file_plain
      no_stub: true
    -
      plugin: skip_on_empty
      method: process
    -
      plugin: migmag_get_entity_property
      entity_type_id: 'media'
      property: 'uuid'
  oracle_uuid:
    plugin: media_migrate_uuid
    source: fid
  mid: fid
  uuid:
    plugin: null_coalesce
    source:
      - '@track_changes_uuid'
      - '@oracle_uuid'
  uid:
    -
      plugin: migration_lookup
+4 −12
Changes for src/MediaMigrationUuidOracle.php: 4 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -55,12 +55,6 @@ final class MediaMigrationUuidOracle implements MediaMigrationUuidOracleInterfac
   * {@inheritdoc}
   */
  public function getMediaUuid(int $source_id, bool $generate = TRUE): ?string {
    // If the media entity already exist, return its UUID.
    if ($media = $this->mediaStorage->load($source_id)) {
      return $media->uuid();
    }

    // If the media does not exist, try to get its UUID from our prophecy table.
    if (!($uuid_prophecy = $this->getMediaUuidProphecy($source_id)) && $generate) {
      $uuid_prophecy = $this->setMediaProphecy($source_id);
    }
@@ -78,14 +72,12 @@ final class MediaMigrationUuidOracle implements MediaMigrationUuidOracleInterfac
   *   The UUID, or NULL if it does not exist at the moment.
   */
  private function getMediaUuidProphecy(int $source_id): ?string {
    $results = $this->database->select(MediaMigration::MEDIA_UUID_PROPHECY_TABLE, 'mupt')
      ->fields('mupt')
    $prophecy = $this->database->select(MediaMigration::MEDIA_UUID_PROPHECY_TABLE, 'mupt')
      ->fields('mupt', [MediaMigration::MEDIA_UUID_PROPHECY_UUID_COL])
      ->condition('mupt.' . MediaMigration::MEDIA_UUID_PROPHECY_SOURCEID_COL, $source_id)
      ->execute()->fetchAll();
      ->execute()->fetchField();

    return isset($results[0]->{MediaMigration::MEDIA_UUID_PROPHECY_UUID_COL}) ?
      $results[0]->{MediaMigration::MEDIA_UUID_PROPHECY_UUID_COL} :
      NULL;
    return $prophecy ?: NULL;
  }

  /**
+6 −1
Changes for src/Plugin/migrate/field/FileEntity.php: 6 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -71,7 +71,12 @@ class FileEntity extends MediaMigrationFieldPluginBase {
    $process[] = [
      'plugin' => 'sub_process',
      'process' => [
        'target_id' => 'fid',
        'target_id' => [
          'plugin' => 'migration_lookup',
          'source' => 'fid',
          'migration' => ['d7_file_entity', 'd7_file_plain'],
          'no_stub' => TRUE,
        ],
      ],
    ];

+6 −1
Changes for src/Plugin/migrate/field/MediaImage.php: 6 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -65,7 +65,12 @@ class MediaImage extends MediaMigrationFieldPluginBase {
    $process[] = [
      'plugin' => 'sub_process',
      'process' => [
        'target_id' => 'fid',
        'target_id' => [
          'plugin' => 'migration_lookup',
          'source' => 'fid',
          'migration' => ['d7_file_entity', 'd7_file_plain'],
          'no_stub' => TRUE,
        ],
      ],
    ];

Loading