Smart Migrate CLI (for Drupal)
This command-line tool improves Drush's migration import functionality by fixing several issues. It runs migrations as the administrator user, automatically determines the correct execution order, and re-instantiates migrations during the process to ensure up-to-date configurations. This prevents potential data corruption and ensures migrations are handled properly.
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.
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 1.0.0-alpha14 | Pre-release | 9–11 | Drupal 11 and Drush 13 compatibility | Jun 30, 2025 |