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 requests
|
||||||
import time
|
import time
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from sqlmodel import Session, select
|
from sqlmodel import Session, select, or_
|
||||||
from database import engine
|
from database import engine
|
||||||
from models import (
|
from models import (
|
||||||
Vertical, Venue, Tour, Show, Song, Performance, Artist,
|
Vertical, Venue, Tour, Show, Song, Performance, Artist,
|
||||||
|
|
@ -14,7 +14,7 @@ from models import (
|
||||||
from passlib.context import CryptContext
|
from passlib.context import CryptContext
|
||||||
from slugify import generate_slug, generate_show_slug
|
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
|
ARTIST_ID = 1 # Goose
|
||||||
pwd_context = CryptContext(schemes=["argon2"], deprecated="auto")
|
pwd_context = CryptContext(schemes=["argon2"], deprecated="auto")
|
||||||
|
|
||||||
|
|
@ -114,6 +114,10 @@ def create_users(session):
|
||||||
print(f"✓ Created/Found {len(users)} users")
|
print(f"✓ Created/Found {len(users)} users")
|
||||||
return users
|
return users
|
||||||
|
|
||||||
|
from sqlmodel import Session, select, or_
|
||||||
|
|
||||||
|
# ... (imports)
|
||||||
|
|
||||||
def import_venues(session):
|
def import_venues(session):
|
||||||
"""Import all venues"""
|
"""Import all venues"""
|
||||||
print("\n🏛️ Importing venues...")
|
print("\n🏛️ Importing venues...")
|
||||||
|
|
@ -123,8 +127,14 @@ def import_venues(session):
|
||||||
|
|
||||||
venue_map = {}
|
venue_map = {}
|
||||||
for v in venues_data:
|
for v in venues_data:
|
||||||
|
slug = generate_slug(v['venuename'])
|
||||||
existing = session.exec(
|
existing = session.exec(
|
||||||
select(Venue).where(Venue.name == v['venuename'])
|
select(Venue).where(
|
||||||
|
or_(
|
||||||
|
Venue.name == v['venuename'],
|
||||||
|
Venue.slug == slug
|
||||||
|
)
|
||||||
|
)
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
if existing:
|
if existing:
|
||||||
|
|
@ -132,7 +142,7 @@ def import_venues(session):
|
||||||
else:
|
else:
|
||||||
venue = Venue(
|
venue = Venue(
|
||||||
name=v['venuename'],
|
name=v['venuename'],
|
||||||
slug=generate_slug(v['venuename']),
|
slug=slug,
|
||||||
city=v.get('city'),
|
city=v.get('city'),
|
||||||
state=v.get('state'),
|
state=v.get('state'),
|
||||||
country=v.get('country'),
|
country=v.get('country'),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue