diff --git a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php index 3393964217..fa3656929d 100644 --- a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php @@ -486,12 +486,26 @@ public function buildConfirmForm(array $form, FormStateInterface $form_state) { } // Now get the field migrations. - foreach ($this->fieldPluginManager->getDefinitions() as $plugin_id => $definition) { - $source_module = $definition['source_module']; - $destination_module = $definition['destination_module']; - $migration_id = 'field_' . $plugin_id; - if (($destination_module == 'core') || $this->moduleHandler->moduleExists($destination_module)) { - $table_data[$source_module][$destination_module][$migration_id] = $migration_id; + $field_types = \Drupal::service('plugin.manager.field.field_type')->getDefinitions(); + foreach ($field_types as $field_type => $value) { + try { + $plugin_id = $this->fieldPluginManager->getPluginIdFromFieldType($field_type, ['core' => $version]); + $field_def = $this->fieldPluginManager->getDefinition($plugin_id); + $field_plugin_id = $field_def['id']; + $source_module = $field_def['source_module']; + if (!$source_module) { + drupal_set_message($this->t('Source module not found for field plugin @field_plugin_id.', ['@field_plugin_id' => $field_plugin_id]), 'error'); + } + $destination_module = $field_def['destination_module']; + if (!$destination_module) { + drupal_set_message($this->t('Destination module not found for field plugin @field_plugin_id.', ['@field_plugin_id' => $field_plugin_id]), 'error'); + } + if (($destination_module == 'core') || $this->moduleHandler->moduleExists($destination_module)) { + $table_data[$source_module][$destination_module][$field_plugin_id] = $field_plugin_id; + } + } + catch (PluginNotFoundException $ex) { + continue; } }