feat: 初始化考培练系统项目
- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
83
backend/scripts/rollback_example.py
Normal file
83
backend/scripts/rollback_example.py
Normal file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
考培练系统 - 数据库回滚工具使用示例
|
||||
演示如何使用回滚工具进行常见的数据恢复操作
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# 添加项目根目录到Python路径
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from scripts.kaopeilian_rollback import KaopeilianRollbackTool
|
||||
|
||||
async def demo_rollback_tools():
|
||||
"""演示回滚工具的使用"""
|
||||
|
||||
print("🔧 考培练系统 - 数据库回滚工具演示")
|
||||
print("=" * 60)
|
||||
|
||||
tool = KaopeilianRollbackTool()
|
||||
|
||||
try:
|
||||
await tool.connect()
|
||||
|
||||
print("\n1️⃣ 查看最近24小时的数据变更")
|
||||
print("-" * 40)
|
||||
await tool.list_recent_changes(24)
|
||||
|
||||
print("\n2️⃣ 演示用户回滚(模拟)")
|
||||
print("-" * 40)
|
||||
print("命令示例:")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-user 123 --operation-type delete")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-user 123 --operation-type delete --execute")
|
||||
|
||||
print("\n3️⃣ 演示课程回滚(模拟)")
|
||||
print("-" * 40)
|
||||
print("命令示例:")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-course 456 --operation-type delete")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-course 456 --operation-type delete --execute")
|
||||
|
||||
print("\n4️⃣ 演示考试回滚(模拟)")
|
||||
print("-" * 40)
|
||||
print("命令示例:")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-exam 789")
|
||||
print("python scripts/kaopeilian_rollback.py --rollback-exam 789 --execute")
|
||||
|
||||
print("\n5️⃣ 演示时间点回滚")
|
||||
print("-" * 40)
|
||||
print("命令示例:")
|
||||
print("python scripts/simple_rollback.py --time '2024-12-20 10:30:00'")
|
||||
print("python scripts/simple_rollback.py --time '2024-12-20 10:30:00' --execute")
|
||||
|
||||
print("\n6️⃣ 查看Binlog文件")
|
||||
print("-" * 40)
|
||||
print("命令示例:")
|
||||
print("python scripts/simple_rollback.py --list")
|
||||
print("python scripts/binlog_rollback_tool.py --list-binlogs")
|
||||
|
||||
print("\n📋 回滚工具总结")
|
||||
print("-" * 40)
|
||||
print("✅ 专用工具:kaopeilian_rollback.py - 业务场景回滚")
|
||||
print("✅ 简化工具:simple_rollback.py - 时间点回滚")
|
||||
print("✅ 完整工具:binlog_rollback_tool.py - 复杂Binlog回滚")
|
||||
print("✅ 配置优化:mysql-rollback.cnf - MySQL回滚优化")
|
||||
print("✅ 文档指南:database_rollback_guide.md - 完整操作指南")
|
||||
|
||||
print("\n⚠️ 安全提醒")
|
||||
print("-" * 40)
|
||||
print("• 回滚操作不可逆,务必谨慎执行")
|
||||
print("• 生产环境回滚前必须在测试环境验证")
|
||||
print("• 重要操作需要多人确认")
|
||||
print("• 保留回滚操作日志和备份文件")
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ 演示过程中出现错误: {e}")
|
||||
finally:
|
||||
await tool.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(demo_rollback_tools())
|
||||
Reference in New Issue
Block a user