Some checks failed
continuous-integration/drone/push Build is failing
- 后端:钉钉 OAuth 认证服务 - 后端:系统设置 API(钉钉配置) - 前端:登录页钉钉扫码入口 - 前端:系统设置页面 - 数据库迁移脚本
数据库迁移说明
目录结构
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 即可。
生产环境迁移检查清单
- 备份数据库
- 在测试环境验证迁移脚本
- 检查是否有正在进行的事务
- 执行迁移脚本
- 验证表结构是否正确
- 验证索引是否创建成功
- 重启后端服务(如有必要)
- 验证功能是否正常
注意事项
-
MySQL 版本兼容性:脚本使用了
IF NOT EXISTS和IF EXISTS,确保 MySQL 版本支持这些语法(8.0+ 完全支持) -
字符集:表默认使用
utf8mb4字符集,支持表情符号等特殊字符 -
外键约束:脚本中的外键约束默认被注释,根据实际需求决定是否启用
-
索引优化:已为常用查询字段创建索引,如需调整请根据实际查询模式优化