""" 应用 invoice_info 表的迁移脚本 运行方式: python scripts/apply_invoice_info_migration.py 说明:脚本会读取 migrations/037_create_invoice_info.sql 并在当前配置的数据库上执行。 """ import sys from pathlib import Path from sqlalchemy import text # 确保项目根在 sys.path,能导入 app 包 project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) from app.database import engine def main(): sql_file = project_root / "migrations" / "037_create_invoice_info.sql" if not sql_file.exists(): print(f"❌ 迁移文件不存在: {sql_file}") sys.exit(1) sql_content = sql_file.read_text(encoding="utf-8") try: with engine.connect() as conn: # 直接一次性执行整个 SQL 文件,包含多个语句与注释块 conn.execute(text(sql_content)) conn.commit() print("✅ 已成功创建/更新表: aigcspace.invoice_info") except Exception as e: print("❌ 执行迁移失败") print(f"错误信息: {e}") sys.exit(1) if __name__ == "__main__": main()