migrate_up.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. try:
  14. # 创建迁移实例
  15. migration = DatabaseMigration()
  16. # 获取当前版本
  17. current_version = migration.get_current_version()
  18. logger.info(f"当前数据库版本: {current_version}")
  19. # 获取待执行的迁移
  20. pending_migrations = migration.get_pending_migrations()
  21. if not pending_migrations:
  22. logger.info("没有待执行的迁移")
  23. return
  24. logger.info(f"发现 {len(pending_migrations)} 个待执行的迁移")
  25. for m in pending_migrations:
  26. logger.info(f"- {m['version']}: {m['description']}")
  27. # 执行迁移
  28. if migration.migrate_up():
  29. logger.info("数据库迁移成功")
  30. new_version = migration.get_current_version()
  31. logger.info(f"当前数据库版本: {new_version}")
  32. else:
  33. logger.error("数据库迁移失败")
  34. except Exception as e:
  35. logger.error(f"执行迁移时发生错误: {e}")
  36. sys.exit(1)
  37. if __name__ == "__main__":
  38. main()