diff --git a/src/migrator/full_migration.py b/src/migrator/full_migration.py index 98966e6..a53652d 100644 --- a/src/migrator/full_migration.py +++ b/src/migrator/full_migration.py @@ -197,10 +197,12 @@ class FullMigrator: migrated += inserted batch_count += 1 progress.update(fetched_in_buffer) + # Get the last inserted ID for resume capability + current_last_id = self._get_last_migrated_id(pg_conn, pg_table) # Update migration state after every batch flush # Keep last_completed_partition if we've completed partitions before self._update_migration_state( - pg_conn, migrated, None, migration_start_time, + pg_conn, migrated, current_last_id, migration_start_time, last_partition=last_processed_partition ) logger.debug( @@ -218,9 +220,11 @@ class FullMigrator: migrated += inserted batch_count += 1 progress.update(fetched_in_buffer) + # Get the last inserted ID for resume capability + current_last_id = self._get_last_migrated_id(pg_conn, pg_table) # Keep last_completed_partition if we've completed partitions before self._update_migration_state( - pg_conn, migrated, None, migration_start_time, + pg_conn, migrated, current_last_id, migration_start_time, last_partition=last_processed_partition ) logger.debug( @@ -231,8 +235,10 @@ class FullMigrator: # NOW partition is complete - update with completed partition logger.info(f"Partition {partition} complete: {partition_group_count} groups consolidated") last_processed_partition = partition # Track this partition as processed + # Get final last ID for this partition + final_last_id = self._get_last_migrated_id(pg_conn, pg_table) self._update_migration_state( - pg_conn, migrated, None, migration_start_time, + pg_conn, migrated, final_last_id, migration_start_time, last_partition=partition )