#!/usr/bin/env python # -*- coding: utf-8 -*- """ 数据库迁移脚本 用于自动检测模型变更并应用到数据库 用法: python scripts/run_migration.py [--verbose] 示例: # 执行自动迁移 python scripts/run_migration.py # 显示详细日志 python scripts/run_migration.py --verbose """ import argparse import os import sys import logging from pathlib import Path # 添加项目根目录到系统路径 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) # 导入项目日志模块 from utils.logger import setup_logger from utils.db_migration import run_migration, DBMigration # 设置日志 setup_logger() logger = logging.getLogger('migration') def main(): """主函数""" parser = argparse.ArgumentParser(description="执行数据库自动迁移") parser.add_argument("--verbose", "-v", action="store_true", help="显示详细日志") args = parser.parse_args() # 设置日志级别 log_level = logging.DEBUG if args.verbose else logging.INFO logging.basicConfig( level=log_level, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) logger.info("开始执行数据库自动迁移...") # 运行迁移 success = run_migration() if success: logger.info("数据库迁移成功完成!") else: logger.error("数据库迁移失败!") # 根据迁移结果设置退出码 sys.exit(0 if success else 1) if __name__ == "__main__": main()