Files
ai-exchange/scripts/run_migrations.py
T
2026-04-24 13:39:01 +08:00

36 lines
803 B
Python

from pathlib import Path
import sys
ROOT = Path(__file__).resolve().parents[1]
if str(ROOT) not in sys.path:
sys.path.insert(0, str(ROOT))
from sqlalchemy import text
from src.db.engine import engine
MIGRATIONS_DIR = ROOT / "migrations"
def iter_migration_files() -> list[Path]:
return sorted(path for path in MIGRATIONS_DIR.glob("*.sql") if path.is_file())
def main() -> None:
files = iter_migration_files()
if not files:
print("no migration files found")
return
with engine.begin() as connection:
for path in files:
sql = path.read_text(encoding="utf-8").strip()
if not sql:
continue
connection.execute(text(sql))
print(f"applied {path.name}")
if __name__ == "__main__":
main()