Files
012-kaopeilian/backend/migrations/README.md
yuliang_guo b6aea2e23d
Some checks failed
continuous-integration/drone/push Build is failing
feat: 添加双人对练功能
- 新增数据库迁移脚本 (practice_rooms, practice_room_messages)
- 新增后端 API: 房间创建/加入/消息同步/报告生成
- 新增前端页面: 入口页/对练房间/报告页
- 新增 AI 双人评估服务和提示词
2026-01-28 15:20:03 +08:00

2.4 KiB
Raw Blame History

数据库迁移说明

目录结构

migrations/
├── README.md          # 本说明文件
└── versions/
    └── add_practice_rooms_table.sql   # 双人对练功能迁移脚本

迁移脚本列表

1. add_practice_rooms_table.sql

功能:双人对练功能数据库结构

新增表

  • practice_rooms - 对练房间表
  • practice_room_messages - 房间实时消息表

修改表

  • practice_dialogues - 新增 user_id, role_name, room_id, message_type 字段
  • practice_sessions - 新增 room_id, participant_role, session_type 字段
  • practice_reports - 新增 room_id, user_id, report_type, partner_feedback, interaction_score 字段

执行方法

方法一:直接登录 MySQL 执行

# 1. 登录 MySQL
docker exec -it kpl-mysql-dev mysql -uroot -p

# 2. 选择数据库
USE kaopeilian;

# 3. 复制并执行 SQL 脚本内容
# 或使用 source 命令执行脚本文件

方法二:使用 docker exec 执行

# 1. 将 SQL 文件复制到容器
docker cp migrations/versions/add_practice_rooms_table.sql kpl-mysql-dev:/tmp/

# 2. 执行迁移
docker exec -i kpl-mysql-dev mysql -uroot -pYourPassword kaopeilian < /tmp/add_practice_rooms_table.sql

方法三:远程 SSH 执行

# SSH 到服务器后执行
ssh user@your-server "docker exec -i kpl-mysql-dev mysql -uroot -pYourPassword kaopeilian" < migrations/versions/add_practice_rooms_table.sql

回滚方法

每个迁移脚本底部都包含了回滚 SQL。如需回滚取消注释并执行回滚部分的 SQL 即可。

生产环境迁移检查清单

  • 备份数据库
  • 在测试环境验证迁移脚本
  • 检查是否有正在进行的事务
  • 执行迁移脚本
  • 验证表结构是否正确
  • 验证索引是否创建成功
  • 重启后端服务(如有必要)
  • 验证功能是否正常

注意事项

  1. MySQL 版本兼容性:脚本使用了 IF NOT EXISTSIF EXISTS,确保 MySQL 版本支持这些语法8.0+ 完全支持)

  2. 字符集:表默认使用 utf8mb4 字符集,支持表情符号等特殊字符

  3. 外键约束:脚本中的外键约束默认被注释,根据实际需求决定是否启用

  4. 索引优化:已为常用查询字段创建索引,如需调整请根据实际查询模式优化