修复smoke.sql可重入并补迁移回滚验证
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# smoke.sql DDL 与迁移顺序验证(2026-02-28)
|
||||
|
||||
对应 issue:`#9 [P0][T6] 校验 docs/sql/smoke.sql DDL 与迁移顺序`
|
||||
|
||||
## 变更
|
||||
|
||||
- 将 `fa_smoke_log` 的建表语句改为 `CREATE TABLE IF NOT EXISTS`,保证脚本可重复执行(增量场景不报错)。
|
||||
|
||||
## 验证环境
|
||||
|
||||
- MySQL: `mysql:8.0`(Docker 临时容器)
|
||||
- 数据库名:`wx_service`
|
||||
- SQL 文件:`docs/sql/smoke.sql`
|
||||
|
||||
## 验证步骤与结果
|
||||
|
||||
1. 空库初始化
|
||||
- 执行:首次导入 `smoke.sql`
|
||||
- 结果:成功,目标 5 张表全部创建(计数=5)
|
||||
|
||||
2. 增量迁移
|
||||
- 执行:在同一库重复导入 `smoke.sql`
|
||||
- 结果:成功,无建表冲突(计数=5)
|
||||
|
||||
3. 回滚可行性
|
||||
- 执行:按逆依赖顺序 `DROP TABLE` 后再次导入 `smoke.sql`
|
||||
- 结果:成功,可回滚后重建(计数=5)
|
||||
|
||||
## 验证命令
|
||||
|
||||
```bash
|
||||
# 1) 空库初始化
|
||||
mysql -h127.0.0.1 -uroot wx_service < /sql/smoke.sql
|
||||
|
||||
# 2) 增量重放
|
||||
mysql -h127.0.0.1 -uroot wx_service < /sql/smoke.sql
|
||||
|
||||
# 3) 回滚后重建
|
||||
mysql -h127.0.0.1 -uroot wx_service -e \
|
||||
"DROP TABLE IF EXISTS fa_smoke_ai_next_smoke, fa_smoke_user_profile, fa_smoke_ai_advice_unlocks, fa_smoke_ai_advice, fa_smoke_log;"
|
||||
mysql -h127.0.0.1 -uroot wx_service < /sql/smoke.sql
|
||||
```
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
-- 戒烟/抽烟记录主表
|
||||
-- 注意:该表字段来自旧系统(createtime/updatetime/deletetime 为秒级时间戳)
|
||||
|
||||
CREATE TABLE `fa_smoke_log` (
|
||||
CREATE TABLE IF NOT EXISTS `fa_smoke_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uid` int(11) NOT NULL COMMENT '用户ID',
|
||||
`smoke_time` date DEFAULT NULL COMMENT '抽烟时间',
|
||||
|
||||
Reference in New Issue
Block a user