Appearance
Flyway
数据库结构随应用启动自动升级。启动失败时先查迁移历史。
当前配置
spring.flyway.enabled=truebaseline-on-migrate=truebaseline-version=20260713140000out-of-order=truelocations=classpath:db/migration
检查 SQL
sql
SELECT installed_rank, version, description, type, success
FROM flyway_schema_history
ORDER BY installed_rank;正常情况下,已有库至少有一条基线记录 20260713140000;新库会执行基线 SQL,其后增量继续向前执行。success 必须全部为成功。
排错要点
- 校验失败、提示找不到旧脚本:通常是历史表与当前扫描目录不一致。生产环境先备份,再评估是恢复备份还是由实施编写后续修复脚本。
- 多人新增脚本冲突:调整尚未执行的脚本时间戳,保证版本号全库唯一。
- 已执行脚本发现问题:新增后续修复脚本,不改历史脚本。
- 合并版本后需要补跑较早脚本:当前允许
out-of-order=true。 - 校验和不匹配:说明已执行过的脚本文件被改动。应恢复该版本文件原内容后重启;生产库不要手改历史表中的校验值。
生产库清理
flyway_schema_history务必在确认备份和评估影响范围后执行。
