#!/usr/bin/env python
"""迁移启动脚本 - 用于执行数据库迁移

使用方法：
    python run_migration.py
"""
import sys
import os

# 添加项目根目录到Python路径
project_root = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, project_root)

# 重要：先加载.env文件，再导入模块
from lawrisk.utils.env_loader import load_env
load_env('.env', override=False)

# 导入并执行迁移
from lawrisk.utils.migrate_unit_permission import execute_migration, check_migration_status

if __name__ == "__main__":
    print("=" * 60)
    print("许可管理单位权限优化 - 数据库迁移")
    print("=" * 60)
    print()

    # 检查当前状态
    status = check_migration_status()
    print(f"迁移状态: {'已完成' if status['migration_complete'] else '未完成'}")
    print()

    if not status['migration_complete']:
        response = input("是否执行数据库迁移？(y/N): ").strip().lower()
        if response == 'y':
            print("\n开始执行迁移...")
            results = execute_migration()

            if results['success']:
                print("\n✅ 迁移成功完成！")
                print("  - 架构迁移: ✅")
                print("  - 数据迁移: ✅")
            else:
                print("\n❌ 迁移失败！")
                for error in results['errors']:
                    print(f"  错误: {error}")
        else:
            print("\n跳过迁移")
    else:
        print("数据库已完全迁移，无需重复执行")

    print("\n" + "=" * 60)
