diff --git a/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php b/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php index 86b436a38a..7e1036d6a9 100644 --- a/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php +++ b/core/modules/field/src/Plugin/migrate/source/d6/FieldOptionTranslation.php @@ -23,6 +23,7 @@ class FieldOptionTranslation extends Field { * {@inheritdoc} */ public function query() { + // Get the profile field name so they can be excluded. if (!$this->profileNames) { $query = $this->select('profile_fields', 'pf')->fields('pf', ['name']); $this->profileNames = $query->execute()->fetchCol(); @@ -69,6 +70,10 @@ public function fields() { /** * {@inheritdoc} */ + + /** + * {@inheritdoc} + */ public function getIds() { return parent::getIds() + [ diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php index af9f35c37f..b934a70635 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php @@ -268,7 +268,7 @@ public function rollback(array $destination_identifier) { // The entity id does not include the langcode. $id_values = []; foreach ($destination_identifier as $key => $value) { - if ($this->isTranslationDestination() && $key == 'langcode') { + if ($this->isTranslationDestination() && $key === 'langcode') { continue; } $id_values[] = $value; diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php index 80ea9f628b..7c9307ef56 100644 --- a/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php +++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityFieldStorageConfig.php @@ -58,6 +58,9 @@ class EntityFieldStorageConfig extends EntityConfigBase { public function getIds() { $ids['entity_type']['type'] = 'string'; $ids['field_name']['type'] = 'string'; + if ($this->isTranslationDestination()) { + $ids['langcode']['type'] = 'string'; + } return $ids; } @@ -65,8 +68,18 @@ public function getIds() { * {@inheritdoc} */ public function rollback(array $destination_identifier) { - $destination_identifier = implode('.', $destination_identifier); - parent::rollback([$destination_identifier]); + if ($this->isTranslationDestination()) { + $language = $destination_identifier['langcode']; + unset($destination_identifier['langcode']); + $destination_identifier = [ + implode('.', $destination_identifier), + 'langcode' => $language, + ]; + } + else { + $destination_identifier = [implode('.', $destination_identifier)]; + } + parent::rollback($destination_identifier); } } diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php index cecbb03ce9..3124450952 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php @@ -67,7 +67,7 @@ protected function getEntityCounts() { 'contact_form' => 5, 'configurable_language' => 5, 'editor' => 2, - 'field_config' => 94, + 'field_config' => 89, 'field_storage_config' => 63, 'file' => 7, 'filter_format' => 7,