"""
执行数据库回滚脚本
用于将数据库回滚到指定版本
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))

from backend.modules.database.migrations import DatabaseMigration
from backend.utils.logger_config import setup_logger

logger = setup_logger(__name__)

def main():
    """执行数据库回滚"""
    if len(sys.argv) != 2:
        logger.error("使用方法: python migrate_down.py <target_version>")
        logger.error("示例: python migrate_down.py 1.0.0")
        sys.exit(1)
        
    target_version = sys.argv[1]
    
    try:
        # 创建迁移实例
        migration = DatabaseMigration()
        
        # 获取当前版本
        current_version = migration.get_current_version()
        if not current_version:
            logger.error("数据库未初始化")
            sys.exit(1)
            
        logger.info(f"当前数据库版本: {current_version}")
        logger.info(f"目标回滚版本: {target_version}")
        
        # 执行回滚
        if migration.migrate_down(target_version):
            logger.info("数据库回滚成功")
            new_version = migration.get_current_version()
            logger.info(f"当前数据库版本: {new_version}")
        else:
            logger.error("数据库回滚失败")
            
    except Exception as e:
        logger.error(f"执行回滚时发生错误: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main() 