diff --git a/backend/add_link_columns.py b/backend/add_link_columns.py new file mode 100644 index 0000000..c803402 --- /dev/null +++ b/backend/add_link_columns.py @@ -0,0 +1,35 @@ +import os +from sqlmodel import create_engine, text + +# Get DB URL from env or default (adjust for production) +DATABASE_URL = os.environ.get("DATABASE_URL", "postgresql://elmeg:runfoo@localhost/elmeg") + +engine = create_engine(DATABASE_URL) + +def run_migration(): + with engine.connect() as conn: + print("Adding columns to Show table...") + try: + conn.execute(text("ALTER TABLE show ADD COLUMN bandcamp_link VARCHAR")) + print("Added bandcamp_link") + except Exception as e: + print(f"Skipping bandcamp_link (already exists?)") + + try: + conn.execute(text("ALTER TABLE show ADD COLUMN nugs_link VARCHAR")) + print("Added nugs_link") + except Exception as e: + print(f"Skipping nugs_link (already exists?)") + + print("Adding columns to Performance table...") + try: + conn.execute(text("ALTER TABLE performance ADD COLUMN track_url VARCHAR")) + print("Added track_url") + except Exception as e: + print(f"Skipping track_url (already exists?)") + + conn.commit() + print("Migration complete.") + +if __name__ == "__main__": + run_migration() diff --git a/backend/models.py b/backend/models.py index ebe8f0d..7e0bcf0 100644 --- a/backend/models.py +++ b/backend/models.py @@ -12,6 +12,7 @@ class Performance(SQLModel, table=True): set_name: Optional[str] = Field(default=None, description="e.g., Set 1, Encore") segue: bool = Field(default=False, description="Transition to next song >") notes: Optional[str] = Field(default=None) + track_url: Optional[str] = Field(default=None, description="Deep link to track audio") nicknames: List["PerformanceNickname"] = Relationship(back_populates="performance") show: "Show" = Relationship(back_populates="performances") @@ -93,6 +94,10 @@ class Show(SQLModel, table=True): tour_id: Optional[int] = Field(default=None, foreign_key="tour.id") notes: Optional[str] = Field(default=None) + # External Links + bandcamp_link: Optional[str] = Field(default=None) + nugs_link: Optional[str] = Field(default=None) + vertical: Vertical = Relationship(back_populates="shows") venue: Optional[Venue] = Relationship(back_populates="shows") tour: Optional[Tour] = Relationship(back_populates="shows")