# 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 ```