feat(backend): Add external link fields to schemas and migration script
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
This commit is contained in:
parent
d11f078d3e
commit
7d9e9c7825
2 changed files with 40 additions and 0 deletions
35
backend/add_link_columns.py
Normal file
35
backend/add_link_columns.py
Normal file
|
|
@ -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()
|
||||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue