# -*- coding: utf-8 -*-
"""数据库迁移脚本（非运行态）—— Alembic 封装。

用法：uv run python scripts/db/migrate.py            # alembic upgrade head
      uv run python scripts/db/migrate.py downgrade  # 回退一个版本
在启动应用【之前】执行；禁止在应用启动时迁移/建表。
"""
from __future__ import annotations

import subprocess
import sys
import os
from pathlib import Path

ROOT = Path(__file__).resolve().parent.parent.parent
os.chdir(ROOT)


def main() -> None:
    cmd = sys.argv[1] if len(sys.argv) > 1 else "upgrade"
    if cmd == "downgrade":
        args = ["python", "-m", "alembic", "downgrade", "-1"]
    else:
        args = ["python", "-m", "alembic", "upgrade", "head"]
    print(f"执行迁移: {' '.join(args)}")
    raise SystemExit(subprocess.call(args, cwd=str(ROOT)))


if __name__ == "__main__":
    main()
