fix: Update migration state with final count when migration completes

When migration finishes, we need to update migration_state with:
1. The final actual row count from PostgreSQL
2. The final last_migrated_id (MAX(id) from the table)
3. Mark status as 'completed' (handled by _update_migration_state)

Previously, the final state update was missing, so migration_state
was left with stale data from the periodic updates.

Now _update_migration_state is called at the end to record the
authoritative final state.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-23 20:16:28 +01:00
parent 0461bb3b44
commit 1708969616

View File

@@ -161,6 +161,23 @@ class FullMigrator:
# Get final actual count from PostgreSQL # Get final actual count from PostgreSQL
final_count = pg_conn.get_row_count(pg_table) final_count = pg_conn.get_row_count(pg_table)
# Update migration state with final count and mark as completed
# Get the actual last ID from the table
try:
with pg_conn.connection.cursor() as cursor:
cursor.execute(
f"SELECT MAX(id) FROM {pg_table}"
)
result = cursor.fetchone()
final_last_id = result[0] if result and result[0] else None
except Exception:
final_last_id = None
self._update_migration_state(
pg_conn, final_count, final_last_id, migration_start_time
)
logger.info( logger.info(
f"✓ Migration complete: {final_count} total rows in {pg_table}" f"✓ Migration complete: {final_count} total rows in {pg_table}"
) )