From c7d5206d0c175816de159bbacb2b0fde36101b61 Mon Sep 17 00:00:00 2001 From: bonamin Date: Fri, 17 Apr 2026 15:30:45 +0300 Subject: [PATCH] fix: deduplicate order_number collisions during Firestore orders migration --- backend/migration/migrate_crm_orders.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/migration/migrate_crm_orders.py b/backend/migration/migrate_crm_orders.py index 57f2f97..22c39ec 100644 --- a/backend/migration/migrate_crm_orders.py +++ b/backend/migration/migrate_crm_orders.py @@ -71,6 +71,7 @@ async def run() -> None: records = [] skipped = 0 + seen_order_numbers: set[str] = set() for doc in docs: d = doc.to_dict() @@ -91,6 +92,12 @@ async def run() -> None: continue order_number = d.get("order_number") or f"ORD-LEGACY-{doc.id}" + # Deduplicate: if this order_number was already seen in this batch, + # make it unique by appending the doc ID suffix. + if order_number in seen_order_numbers: + order_number = f"{order_number}-{doc.id[:8]}" + print(f" INFO: duplicate order_number — renamed to {order_number}") + seen_order_numbers.add(order_number) created_at = _coerce_dt(d.get("created_at")) or _now_utc() updated_at = _coerce_dt(d.get("updated_at")) or _now_utc()