Álvaro Valenzuela Valdes commited on
Commit
db6ec96
·
1 Parent(s): 0e01a18

🔧 Fix: Resolved UNIQUE constraint error in tender synchronization

Browse files
Files changed (1) hide show
  1. backend/app/services/sync.py +9 -1
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
- for api_t in api_tenders:
 
 
 
 
 
 
 
 
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