52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
from sqlmodel import Session, select
|
|
from database import engine, create_db_and_tables
|
|
from models import Vertical, Venue, Show, Song, Performance, User
|
|
from datetime import datetime
|
|
|
|
def seed_data():
|
|
with Session(engine) as session:
|
|
# Check if data exists
|
|
existing_vertical = session.exec(select(Vertical)).first()
|
|
if existing_vertical:
|
|
print("Data already seeded.")
|
|
return
|
|
|
|
# Create Vertical
|
|
phish = Vertical(name="Phish", slug="phish", description="The band Phish.")
|
|
session.add(phish)
|
|
session.commit()
|
|
session.refresh(phish)
|
|
|
|
# Create Venue
|
|
msg = Venue(name="Madison Square Garden", city="New York", state="NY", country="USA", capacity=20000)
|
|
session.add(msg)
|
|
session.commit()
|
|
session.refresh(msg)
|
|
|
|
# Create Show
|
|
show = Show(date=datetime(2023, 12, 31), vertical_id=phish.id, venue_id=msg.id)
|
|
session.add(show)
|
|
session.commit()
|
|
session.refresh(show)
|
|
|
|
# Create Songs
|
|
song1 = Song(title="Gamehendge Time Phactory", vertical_id=phish.id)
|
|
song2 = Song(title="Auld Lang Syne", vertical_id=phish.id)
|
|
session.add(song1)
|
|
session.add(song2)
|
|
session.commit()
|
|
session.refresh(song1)
|
|
session.refresh(song2)
|
|
|
|
# Create Performances
|
|
p1 = Performance(show_id=show.id, song_id=song1.id, position=1, set_name="Set 1")
|
|
p2 = Performance(show_id=show.id, song_id=song2.id, position=2, set_name="Set 1", segue=True)
|
|
session.add(p1)
|
|
session.add(p2)
|
|
session.commit()
|
|
|
|
print("Seeding complete!")
|
|
|
|
if __name__ == "__main__":
|
|
# create_db_and_tables() # Alembic handles this now
|
|
seed_data()
|