Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Usage Milestone: Google Analytics Module google_analytics crossed 1,000 active installs. Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Release: GraphQL Compose Codegen 1.1.2 Minor update available for module graphql_compose_codegen (1.1.2). Release: Mapy.com 1.1.3 Minor update available for module mapycom (1.1.3). Release: Ckeditor5 entity browser 3.0.3 Minor update available for module ckeditor5_entity_browser (3.0.3). Release: Ckeditor5 entity browser 3.0.1 Minor update available for module ckeditor5_entity_browser (3.0.1). Release: Ckeditor5 entity browser 3.0.2 Minor update available for module ckeditor5_entity_browser (3.0.2). Release: Teamleader Integration 4.0.2 Minor update available for module teamleader (4.0.2). Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

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.

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

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

Releases

Version Type Core Release date
1.0.0-alpha14 Pre-release 9–11 Jun 30, 2025