diff --git a/backend/main.py b/backend/main.py index 71c7281..410b2e7 100644 --- a/backend/main.py +++ b/backend/main.py @@ -37,6 +37,25 @@ load_dotenv() # Create database tables models.Base.metadata.create_all(bind=engine) +# ── Auto-migrate: add new columns if they don't exist yet ──────────────────── +def _run_startup_migrations(): + """Idempotent column additions — safe to run on every deploy.""" + statements = [ + "ALTER TABLE events ADD COLUMN IF NOT EXISTS invitation_image_url TEXT;", + "ALTER TABLE events ADD COLUMN IF NOT EXISTS guest_form_fields TEXT;", + "ALTER TABLE guests_v2 ADD COLUMN IF NOT EXISTS companion_count INTEGER DEFAULT 0;", + ] + from sqlalchemy import text + with engine.connect() as conn: + for stmt in statements: + try: + conn.execute(text(stmt)) + except Exception as e: + print(f"[startup migration] warning: {e}") + conn.commit() + +_run_startup_migrations() + app = FastAPI(title="Multi-Event Invitation Management API") # Ensure uploads directory exists and serve it as static files