diff --git a/src/Form/MigrateUpgradeForm.php b/src/Form/MigrateUpgradeForm.php index e6ab4cf..3e6be0c 100644 --- a/src/Form/MigrateUpgradeForm.php +++ b/src/Form/MigrateUpgradeForm.php @@ -24,503 +24,6 @@ class MigrateUpgradeForm extends FormBase implements ConfirmFormInterface { use MigrationCreationTrait; /** - * @todo: Find a mechanism to derive this information from the migrations - * themselves. - * - * @var array - */ - protected $moduleUpgradePaths = [ - 'd6_action_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'action' - ], - 'd6_aggregator_feed' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd6_aggregator_item' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd6_aggregator_settings' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_aggregator_settings' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_blocked_ips' => [ - 'source_module' => 'system', - 'destination_module' => 'ban', - ], - 'd6_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block', - ], - 'block_content_body_field' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'block_content_type' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'd6_custom_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'd6_book' => [ - 'source_module' => 'book', - 'destination_module' => 'book', - ], - 'd6_book_settings' => [ - 'source_module' => 'book', - 'destination_module' => 'book', - ], - 'd6_comment' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_form_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_form_display_subject' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_field' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_field_instance' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_type' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_form_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_form_display_subject' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_field' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_field_instance' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_type' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_contact_category' => [ - 'source_module' => 'contact', - 'destination_module' => 'contact', - ], - 'd6_contact_settings' => [ - 'source_module' => 'contact', - 'destination_module' => 'contact', - ], - 'd6_dblog_settings' => [ - 'source_module' => 'dblog', - 'destination_module' => 'dblog', - ], - 'd7_dblog_settings' => [ - 'source_module' => 'dblog', - 'destination_module' => 'dblog', - ], - 'd6_field' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_formatter_settings' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_instance' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_instance_widget_settings' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd7_field' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_formatter_settings' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_instance' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_instance_widget_settings' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_view_modes' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd6_file' => [ - 'source_module' => 'system', - 'destination_module' => 'file', - ], - 'd6_file_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'file', - ], - 'd6_upload' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_entity_display' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_entity_form_display' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_field' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_field_instance' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd7_file' => [ - 'source_module' => 'file', - 'destination_module' => 'file', - ], - 'd6_filter_format' => [ - 'source_module' => 'filter', - 'destination_module' => 'filter', - ], - 'd7_filter_format' => [ - 'source_module' => 'filter', - 'destination_module' => 'filter', - ], - 'd6_forum_settings' => [ - 'source_module' => 'forum', - 'destination_module' => 'forum', - ], - 'd6_imagecache_presets' => [ - 'source_module' => 'imagecache', - 'destination_module' => 'image', - ], - 'd7_image_settings' => [ - 'source_module' => 'image', - 'destination_module' => 'image', - ], - 'd7_language_negotiation_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'locale_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'locale', - ], - 'd6_menu_links' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_link_content', - ], - 'd7_menu_links' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_link_content', - ], - 'menu_settings' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_ui', - ], - 'd6_node' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_revision' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_promote' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_status' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_sticky' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_settings' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_type' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_view_modes' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_revision' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_settings' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_title_label' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_type' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_url_alias' => [ - 'source_module' => 'path', - 'destination_module' => 'path', - ], - 'd6_search_page' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd6_search_settings' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd7_search_settings' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd6_simpletest_settings' => [ - 'source_module' => 'simpletest', - 'destination_module' => 'simpletest', - ], - 'd7_simpletest_settings' => [ - 'source_module' => 'simpletest', - 'destination_module' => 'simpletest', - ], - 'd6_statistics_settings' => [ - 'source_module' => 'statistics', - 'destination_module' => 'statistics', - ], - 'd6_syslog_settings' => [ - 'source_module' => 'syslog', - 'destination_module' => 'syslog', - ], - 'd7_syslog_settings' => [ - 'source_module' => 'syslog', - 'destination_module' => 'syslog', - ], - 'd6_date_formats' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_cron' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_date' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_file' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_image' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_image_gd' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_logging' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_maintenance' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_performance' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_rss' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_site' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'menu' => [ - 'source_module' => 'menu', - 'destination_module' => 'system', - ], - 'taxonomy_settings' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_taxonomy_term' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_taxonomy_vocabulary' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_term_node' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_term_node_revision' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_entity_display' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_entity_form_display' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_field' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_field_instance' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'text_settings' => [ - 'source_module' => 'text', - 'destination_module' => 'text', - ], - 'd7_tracker_settings' => [ - 'source_module' => 'tracker', - 'destination_module' => 'tracker', - ], - 'd6_update_settings' => [ - 'source_module' => 'update', - 'destination_module' => 'update', - ], - 'd6_profile_values' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'd6_user' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_contact_settings' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_mail' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_picture_file' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_role' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_settings' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_flood' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_mail' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_role' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_entity_display' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_entity_form_display' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_field' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_field_instance' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_profile_entity_display' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_entity_form_display' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_field' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_field_instance' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - ]; - - /** * {@inheritdoc} */ public function getFormId() { @@ -742,12 +245,20 @@ class MigrateUpgradeForm extends FormBase implements ConfirmFormInterface { /** @var MigrationInterface $migration */ $migration = Migration::load($migration_id); // Fetch the system data at the first opportunity. - if (empty($system_data) && is_a($migration->getSourcePlugin(), '\Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase')) { + $is_sql_source = is_a($migration->getSourcePlugin(), '\Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase'); + if (empty($system_data) && $is_sql_source) { $system_data = $migration->getSourcePlugin()->getSystemData(); } - $template_id = $migration->get('template'); - $source_module = $this->moduleUpgradePaths[$template_id]['source_module']; - $destination_module = $this->moduleUpgradePaths[$template_id]['destination_module']; + $source = $migration->get('source'); + $destination = $migration->get('destination'); + if (isset($source['provider']) && $destination['provider']) { + $source_module = $source['provider']; + $destination_module = $destination['provider']; + } + else { + $source_module = $this->t('Unknown'); + $destination_module = $this->t('Unknown'); + } $table_data[$source_module][$destination_module][$migration_id] = $migration->label(); } ksort($table_data);