migrate_down.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. """
  2. 执行数据库回滚脚本
  3. 用于将数据库回滚到指定版本
  4. """
  5. import sys
  6. import os
  7. sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
  8. from backend.modules.database.migrations import DatabaseMigration
  9. from backend.utils.logger_config import setup_logger
  10. logger = setup_logger(__name__)
  11. def main():
  12. """执行数据库回滚"""
  13. if len(sys.argv) != 2:
  14. logger.error("使用方法: python migrate_down.py <target_version>")
  15. logger.error("示例: python migrate_down.py 1.0.0")
  16. sys.exit(1)
  17. target_version = sys.argv[1]
  18. try:
  19. # 创建迁移实例
  20. migration = DatabaseMigration()
  21. # 获取当前版本
  22. current_version = migration.get_current_version()
  23. if not current_version:
  24. logger.error("数据库未初始化")
  25. sys.exit(1)
  26. logger.info(f"当前数据库版本: {current_version}")
  27. logger.info(f"目标回滚版本: {target_version}")
  28. # 执行回滚
  29. if migration.migrate_down(target_version):
  30. logger.info("数据库回滚成功")
  31. new_version = migration.get_current_version()
  32. logger.info(f"当前数据库版本: {new_version}")
  33. else:
  34. logger.error("数据库回滚失败")
  35. except Exception as e:
  36. logger.error(f"执行回滚时发生错误: {e}")
  37. sys.exit(1)
  38. if __name__ == "__main__":
  39. main()