典型场景:create_all 已按当前模型把列/表直接建好(如 perms、device.model), 而 schema_version 又因历史中断没记录,导致每次启动重复 ALTER 报错。 duplicate column name 说明列已存在=迁移目标已达成:回滚本次语句后仍记录 版本号,一次启动即自愈;其它异常才中止本批迁移。
典型场景:create_all 已按当前模型把列/表直接建好(如 perms、device.model), 而 schema_version 又因历史中断没记录,导致每次启动重复 ALTER 报错。 duplicate column name 说明列已存在=迁移目标已达成:回滚本次语句后仍记录 版本号,一次启动即自愈;其它异常才中止本批迁移。