"""数据库迁移脚本(Alembic 封装)。 用法: python scripts/migrate.py # 升级到最新 python scripts/migrate.py --revision abc123 # 升级到指定版本 """ import argparse import subprocess import sys def run_alembic(args_list: list[str]) -> None: cmd = [sys.executable, "-m", "alembic", *args_list] print("执行:", " ".join(cmd)) result = subprocess.run(cmd) sys.exit(result.returncode) def main() -> None: parser = argparse.ArgumentParser(description="数据库迁移") parser.add_argument("--revision", type=str, default="head", help="迁移目标版本") parser.add_argument("--downgrade", action="store_true", help="回滚迁移") args = parser.parse_args() if args.downgrade: run_alembic(["downgrade", args.revision]) else: run_alembic(["upgrade", args.revision]) if __name__ == "__main__": main()