protected function MigrationConfigurationTrait::getMigrations in Drupal 9
Same name and namespace in other branches
- 8 core/modules/migrate_drupal/src/MigrationConfigurationTrait.php \Drupal\migrate_drupal\MigrationConfigurationTrait::getMigrations()
Gets the migrations for import.
Parameters
string $database_state_key: The state key.
int $drupal_version: The version of Drupal we're getting the migrations for.
Return value
\Drupal\migrate\Plugin\MigrationInterface[] The migrations for import.
1 call to MigrationConfigurationTrait::getMigrations()
- CredentialForm::setupMigrations in core/
modules/ migrate_drupal_ui/ src/ Form/ CredentialForm.php - Gets and stores information for this migration in temporary store.
File
- core/
modules/ migrate_drupal/ src/ MigrationConfigurationTrait.php, line 122
Class
- MigrationConfigurationTrait
- Configures the appropriate migrations for a given source Drupal database.
Namespace
Drupal\migrate_drupalCode
protected function getMigrations($database_state_key, $drupal_version) {
$version_tag = 'Drupal ' . $drupal_version;
/** @var \Drupal\migrate\Plugin\MigrationInterface[] $all_migrations */
$all_migrations = $this
->getMigrationPluginManager()
->createInstancesByTag($version_tag);
// Unset the node migrations that should not run based on the type of node
// migration. That is, if this is a complete node migration then unset the
// classic node migrations and if this is a classic node migration then
// unset the complete node migrations.
$type = NodeMigrateType::getNodeMigrateType(\Drupal::database(), $drupal_version);
switch ($type) {
case NodeMigrateType::NODE_MIGRATE_TYPE_COMPLETE:
$patterns = '/(d' . $drupal_version . '_node:)|(d' . $drupal_version . '_node_translation:)|(d' . $drupal_version . '_node_revision:)|(d7_node_entity_translation:)/';
break;
case NodeMigrateType::NODE_MIGRATE_TYPE_CLASSIC:
$patterns = '/(d' . $drupal_version . '_node_complete:)/';
break;
}
foreach ($all_migrations as $key => $migrations) {
if (preg_match($patterns, $key)) {
unset($all_migrations[$key]);
}
}
$migrations = [];
foreach ($all_migrations as $migration) {
// Skip migrations tagged with any of the follow-up migration tags. They
// will be derived and executed after the migrations on which they depend
// have been successfully executed.
// @see Drupal\migrate_drupal\Plugin\MigrationWithFollowUpInterface
if (!empty(array_intersect($migration
->getMigrationTags(), $this
->getFollowUpMigrationTags()))) {
continue;
}
try {
// @todo https://drupal.org/node/2681867 We should be able to validate
// the entire migration at this point.
$source_plugin = $migration
->getSourcePlugin();
if ($source_plugin instanceof RequirementsInterface) {
$source_plugin
->checkRequirements();
}
$destination_plugin = $migration
->getDestinationPlugin();
if ($destination_plugin instanceof RequirementsInterface) {
$destination_plugin
->checkRequirements();
}
$migrations[] = $migration;
} catch (RequirementsException $e) {
// Migrations which are not applicable given the source and destination
// site configurations (e.g., what modules are enabled) will be silently
// ignored.
}
}
return $migrations;
}