| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """
- 运行迁移脚本:创建课程分类与课程表(迁移 049)
- 用法:
- python D:\AIGC-space\backend\scripts\run_migration_049.py
- 或(在 backend 目录下):
- python -m scripts.run_migration_049
- 脚本会在执行前要求交互确认,防止误操作。它会使用项目的 `app.database.engine` 连接执行 SQL 文件。
- """
- import sys
- from pathlib import Path
- from sqlalchemy import text
- # Ensure `app` package imports work
- sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
- from app.database import engine
- MIGRATION_PATH = Path(__file__).resolve().parents[1] / 'migrations' / '049_create_course_tables.sql'
- def main():
- if not MIGRATION_PATH.exists():
- print(f"迁移文件不存在: {MIGRATION_PATH}")
- return
- sql = MIGRATION_PATH.read_text(encoding='utf-8')
- print("将要执行的 SQL:\n")
- print(sql)
- resp = input("确认执行上述 SQL 吗?这会创建课程相关表(y/N):")
- if resp.lower() != 'y':
- print("已取消。")
- return
- try:
- with engine.connect() as conn:
- print("开始执行迁移...")
- conn.execute(text(sql))
- conn.commit()
- print("迁移执行成功。")
- except Exception as e:
- print(f"迁移执行失败: {e}")
- if __name__ == '__main__':
- main()
|