Spaces:
Build error
Build error
Álvaro Valenzuela Valdes commited on
Commit ·
db6ec96
1
Parent(s): 0e01a18
🔧 Fix: Resolved UNIQUE constraint error in tender synchronization
Browse files
backend/app/services/sync.py
CHANGED
|
@@ -24,7 +24,15 @@ async def sync_tenders_to_db(db: Session, keyword: str = None):
|
|
| 24 |
count_new = 0
|
| 25 |
count_updated = 0
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
# Check if exists
|
| 29 |
db_tender = db.query(TenderModel).filter(TenderModel.code == api_t.code).first()
|
| 30 |
|
|
|
|
| 24 |
count_new = 0
|
| 25 |
count_updated = 0
|
| 26 |
|
| 27 |
+
# Deduplicate API results by code to avoid IntegrityError within the same batch
|
| 28 |
+
seen_codes = set()
|
| 29 |
+
unique_tenders = []
|
| 30 |
+
for t in api_tenders:
|
| 31 |
+
if t.code not in seen_codes:
|
| 32 |
+
seen_codes.add(t.code)
|
| 33 |
+
unique_tenders.append(t)
|
| 34 |
+
|
| 35 |
+
for api_t in unique_tenders:
|
| 36 |
# Check if exists
|
| 37 |
db_tender = db.query(TenderModel).filter(TenderModel.code == api_t.code).first()
|
| 38 |
|