smart_migrate_cli
Smart Migrate CLI overrides Drush ^11 migrate:import command to fix the tiny-tiny nits which slightly degrade its DX:
-
Drush ^11 executes migration operations with user
0. SMC's migrate:import uses uid1. -
Drush ^11 migrate import command does not build the optimal execution order - meaning that we usually have to use the
--execute-dependenciesarg. No need for that - we just have to callMigrationManager::buildDependencyMigrations()and keep the order it returns. -
Migrate Drupal UI's
MigrateUpgradeImportBatchexecutes migrations with batch - meaning that every new import operation is started in a new request. This ensures that new fields created by a previously executed migration are reflected in (plugin, entity type, field etc) managers.Unfortunately, Drush ^11 migrate command instantiates migrations only at the beginning of its import command. Smart Migrate CLI re-instantiates them right before import, ensuring that most of services injected in source or destination plugin instances are up-to-date.
-
Because of the above, entity caches might be obsolete when we are about to start importing e.g. content entities.
-
Drush ^11 is unaware of classic or complete node migrations. It does not check what is the configured node migration strategy - it just executes both classic and complete migrations - which results in data corruption (or misleading error messages).
-
Drush ^11 is unaware of follow-up migrations. It seems it does not know they exist - but it does not handles them the right way for sure.