from pathlib import Path import sys from sqlalchemy import text ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT)) from app.database import engine # noqa: E402 def column_exists(conn, column_name: str) -> bool: return bool(conn.execute( text(""" SELECT COUNT(*) FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'work_schedules' AND column_name = :column_name """), {"column_name": column_name}, ).scalar_one()) def main() -> None: with engine.begin() as conn: if not column_exists(conn, "attendance_latitude"): conn.execute(text(""" ALTER TABLE work_schedules ADD COLUMN attendance_latitude DECIMAL(10, 7) NULL AFTER night_end """)) if not column_exists(conn, "attendance_longitude"): conn.execute(text(""" ALTER TABLE work_schedules ADD COLUMN attendance_longitude DECIMAL(10, 7) NULL AFTER attendance_latitude """)) if not column_exists(conn, "attendance_radius_meters"): conn.execute(text(""" ALTER TABLE work_schedules ADD COLUMN attendance_radius_meters INT NOT NULL DEFAULT 500 AFTER attendance_longitude """)) print("work_schedules attendance location migrated") if __name__ == "__main__": main()