from sqlalchemy import text from app.database import SessionLocal def column_exists(db, table_name: str, column_name: str) -> bool: return bool(db.execute(text(f"SHOW COLUMNS FROM {table_name} LIKE :column"), {"column": column_name}).first()) def main() -> None: with SessionLocal() as db: if not column_exists(db, "personnel", "is_temporary"): db.execute( text( "ALTER TABLE personnel " "ADD COLUMN is_temporary TINYINT(1) NOT NULL DEFAULT 0 AFTER name" ) ) if not column_exists(db, "personnel", "temporary_expires_at"): db.execute( text( "ALTER TABLE personnel " "ADD COLUMN temporary_expires_at DATETIME NULL AFTER is_temporary" ) ) db.commit() print("temporary worker columns migrated") if __name__ == "__main__": main()