from sqlmodel import Session, text from app.db import engine def migrate(): print("Starting migration...") with Session(engine) as session: columns = [ ("firstname", "VARCHAR"), ("lastname", "VARCHAR"), ("age", "INTEGER"), ("gender", "VARCHAR"), ("height", "FLOAT"), ("weight", "FLOAT"), ("unit_preference", "VARCHAR DEFAULT 'metric'"), ] for col, type_ in columns: try: print(f"Adding {col}...") # Using "user" with quotes to avoid reserved keyword issues, though SQLModel usually handles it session.exec(text(f'ALTER TABLE "user" ADD COLUMN IF NOT EXISTS {col} {type_}')) session.commit() print(f"Added {col}") except Exception as e: print(f"Error adding {col}: {e}") session.rollback() if __name__ == "__main__": migrate()