Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

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:

  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.

Activity

Total releases
1
First release
Jun 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Dormant

Releases

Version Type Release date
1.0.0-alpha14 Pre-release Jun 30, 2025