fix: deduplicate order_number collisions during Firestore orders migration
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user