This project is not covered by Drupal’s security advisory policy.

Smart Migrate CLI overrides Drush ^11 migrate:import command to fix the tiny-tiny nits which slightly degrade its DX:

  1. Drush ^11 executes migration operations with user 0. SMC's migrate:import uses uid 1.

  2. Drush ^11 migrate import command does not build the optimal execution order - meaning that we usually have to use the --execute-dependencies arg. No need for that - we just have to call MigrationManager::buildDependencyMigrations() and keep the order it returns.

  3. Migrate Drupal UI's MigrateUpgradeImportBatch executes 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.

  4. Because of the above, entity caches might be obsolete when we are about to start importing e.g. content entities.

  5. 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).

  6. 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.

Supporting organizations: 
Founding and initial development
Maintenance

Project information

Releases