yumoqing
66996c693d
fix(dmig): DROP INDEX 被 DROP COLUMN 守卫误解析致静默跳过 + m0038 唯一索引修正
dmig.py 两处(2026-09-17 m0038 部署预演时本地测试抓到):
① `ALTER TABLE t DROP INDEX idx` 会命中 DROP COLUMN 守卫的可选 `(COLUMN\s+)?`
分支,group(3) 捕获到字面词 'INDEX' 而非索引名 → column_exists(t,'INDEX')
恒 False → 整步被静默跳过(索引删不掉、无任何报错)。修: DROP INDEX 守卫
(ALTER 形态 + 独立 `DROP INDEX idx ON t` 形态,历史迁移 m0025/m0031 等
13 条 down 段用的就是独立形态、此前同样无守卫)放在 DROP COLUMN 之前,
幂等判据用 index_exists。
② DROP COLUMN 正则收紧为强制 COLUMN 关键字后列名组号 3→2,调用点同步
(历史 22 条 DROP COLUMN 全部显式带 COLUMN、bare 形态 0 条,无回归)。
本地守卫测试 18/18 全绿(含 m0038 up/down/重复down 完整生命周期)。
m0038: m0037 把 models 声明的 uk_org_user_name(unique) 误写成普通 CREATE
INDEX → 实测建出 KEY 而非 UNIQUE KEY,失去并发去重保护(同名可插重复行、
save_secret 幂等判定失效)。本迁移删误建索引并按 models JSON 权威定义重建
UNIQUE。backup_tables 照旧。不改已应用的 m0037(台账完整性)。
2026-09-17 16:02:33 +08:00
..
2026-09-01 16:00:35 +08:00
2026-09-01 16:00:35 +08:00
2026-09-01 16:00:35 +08:00
2026-09-01 16:00:35 +08:00
2026-09-01 16:22:14 +08:00
2026-09-02 17:13:23 +08:00
2026-09-03 16:22:02 +08:00
2026-09-04 14:00:17 +08:00
2026-09-04 15:58:14 +08:00
2026-09-05 13:07:10 +08:00
2026-09-05 18:19:53 +08:00
2026-09-06 17:15:54 +08:00
2026-09-06 19:49:25 +08:00
2026-09-07 14:26:01 +08:00
2026-09-09 13:46:25 +08:00
2026-09-09 13:46:25 +08:00
2026-09-09 19:15:57 +08:00
2026-09-09 19:26:39 +08:00
2026-09-14 12:46:54 +08:00
2026-09-11 15:30:24 +08:00
2026-09-10 15:31:06 +08:00
2026-09-10 17:09:46 +08:00
2026-09-11 15:30:24 +08:00
2026-09-10 19:02:12 +08:00
2026-09-10 19:02:12 +08:00
2026-09-10 18:36:56 +08:00
2026-09-11 15:31:08 +08:00
2026-09-14 13:19:04 +08:00
2026-09-14 15:06:54 +08:00
2026-09-14 15:27:34 +08:00
2026-09-15 00:13:28 +08:00
2026-09-15 15:01:58 +08:00
2026-09-16 13:34:46 +08:00
2026-09-16 18:23:54 +08:00
2026-09-17 15:45:48 +08:00
2026-09-17 16:02:33 +08:00