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")
|
set_name: Optional[str] = Field(default=None, description="e.g., Set 1, Encore")
|
||||||
segue: bool = Field(default=False, description="Transition to next song >")
|
segue: bool = Field(default=False, description="Transition to next song >")
|
||||||
notes: Optional[str] = Field(default=None)
|
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")
|
nicknames: List["PerformanceNickname"] = Relationship(back_populates="performance")
|
||||||
show: "Show" = Relationship(back_populates="performances")
|
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")
|
tour_id: Optional[int] = Field(default=None, foreign_key="tour.id")
|
||||||
notes: Optional[str] = Field(default=None)
|
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")
|
vertical: Vertical = Relationship(back_populates="shows")
|
||||||
venue: Optional[Venue] = Relationship(back_populates="shows")
|
venue: Optional[Venue] = Relationship(back_populates="shows")
|
||||||
tour: Optional[Tour] = Relationship(back_populates="shows")
|
tour: Optional[Tour] = Relationship(back_populates="shows")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue