fix(backend): Robust duplicate handling and public API fallback for importer
This commit is contained in:
parent
429858287f
commit
f026cb2423
1 changed files with 14 additions and 4 deletions
|
|
@ -5,7 +5,7 @@ Fetches ALL Goose data from El Goose API and populates demo database
|
|||
import requests
|
||||
import time
|
||||
from datetime import datetime
|
||||
from sqlmodel import Session, select
|
||||
from sqlmodel import Session, select, or_
|
||||
from database import engine
|
||||
from models import (
|
||||
Vertical, Venue, Tour, Show, Song, Performance, Artist,
|
||||
|
|
@ -14,7 +14,7 @@ from models import (
|
|||
from passlib.context import CryptContext
|
||||
from slugify import generate_slug, generate_show_slug
|
||||
|
||||
BASE_URL = "http://elmeg-legacy-api:8000/api/v2"
|
||||
BASE_URL = "https://elgoose.net/api/v2"
|
||||
ARTIST_ID = 1 # Goose
|
||||
pwd_context = CryptContext(schemes=["argon2"], deprecated="auto")
|
||||
|
||||
|
|
@ -114,6 +114,10 @@ def create_users(session):
|
|||
print(f"✓ Created/Found {len(users)} users")
|
||||
return users
|
||||
|
||||
from sqlmodel import Session, select, or_
|
||||
|
||||
# ... (imports)
|
||||
|
||||
def import_venues(session):
|
||||
"""Import all venues"""
|
||||
print("\n🏛️ Importing venues...")
|
||||
|
|
@ -123,8 +127,14 @@ def import_venues(session):
|
|||
|
||||
venue_map = {}
|
||||
for v in venues_data:
|
||||
slug = generate_slug(v['venuename'])
|
||||
existing = session.exec(
|
||||
select(Venue).where(Venue.name == v['venuename'])
|
||||
select(Venue).where(
|
||||
or_(
|
||||
Venue.name == v['venuename'],
|
||||
Venue.slug == slug
|
||||
)
|
||||
)
|
||||
).first()
|
||||
|
||||
if existing:
|
||||
|
|
@ -132,7 +142,7 @@ def import_venues(session):
|
|||
else:
|
||||
venue = Venue(
|
||||
name=v['venuename'],
|
||||
slug=generate_slug(v['venuename']),
|
||||
slug=slug,
|
||||
city=v.get('city'),
|
||||
state=v.get('state'),
|
||||
country=v.get('country'),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue