From 752a246aa425c29e784f772805898e69c98270ad Mon Sep 17 00:00:00 2001 From: Daniel Pfeiffer <58746-mediabounds@users.noreply.drupalcode.org> Date: Wed, 29 Nov 2023 14:07:50 -0600 Subject: [PATCH] Issue #3397550 by mediabounds, heddn: --sync does not remove rows without a destination --- src/EventSubscriber/MigrationImportSync.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/EventSubscriber/MigrationImportSync.php b/src/EventSubscriber/MigrationImportSync.php index 1a87f89..5e40547 100644 --- a/src/EventSubscriber/MigrationImportSync.php +++ b/src/EventSubscriber/MigrationImportSync.php @@ -89,15 +89,16 @@ class MigrationImportSync implements EventSubscriberInterface { } } - $destination_ids = $id_map->currentDestination(); - - if ($destination_ids !== NULL && $destination_ids !== [] && !in_array($map_source_id, $source_id_values, TRUE)) { - $this->dispatchRowDeleteEvent(MigrateEvents::PRE_ROW_DELETE, $migration, $destination_ids); - if (class_exists(MigratePlusEvents::class)) { - $this->dispatchRowDeleteEvent(MigratePlusEvents::MISSING_SOURCE_ITEM, $migration, $destination_ids); + if (!in_array($map_source_id, $source_id_values, TRUE)) { + $destination_ids = $id_map->currentDestination(); + if ($destination_ids !== NULL) { + $this->dispatchRowDeleteEvent(MigrateEvents::PRE_ROW_DELETE, $migration, $destination_ids); + if (class_exists(MigratePlusEvents::class)) { + $this->dispatchRowDeleteEvent(MigratePlusEvents::MISSING_SOURCE_ITEM, $migration, $destination_ids); + } + $destination->rollback($destination_ids); + $this->dispatchRowDeleteEvent(MigrateEvents::POST_ROW_DELETE, $migration, $destination_ids); } - $destination->rollback($destination_ids); - $this->dispatchRowDeleteEvent(MigrateEvents::POST_ROW_DELETE, $migration, $destination_ids); $id_map->delete($map_source_id); } $id_map->next(); -- GitLab