Flyway 6.x升级8.x适配PostgreSQL14时迁移验证失败求助
问题解决:Flyway升级后验证失败(PostgreSQL 11→14 + Flyway 6→8)
错误原因
从日志可明确问题:Flyway的schema历史表中记录了名为create trigger to update universal table的已应用迁移,但本地文件系统中找不到对应的迁移脚本,触发验证失败。
解决步骤
1. 确认迁移脚本状态
- 检查本地Flyway迁移目录,若该脚本是误删,恢复即可解决问题。
- 若为有意移除该脚本,执行以下Flyway命令更新schema历史表:
此命令会将历史表中对应迁移条目标记为flyway repairDELETED,消除本地与数据库的不一致。
2. PostgreSQL升级后的Flyway适配要点
- Flyway 8.x原生兼容PostgreSQL 14.x,无需单独迁移schema历史表条目。
- 确保使用兼容的PostgreSQL JDBC驱动:Flyway 8.4.1建议搭配42.3.x及以上版本的驱动。
3. 相关文档说明
- Flyway
repair命令的核心作用是修复schema历史表的不一致场景(包括本地脚本缺失、校验和不匹配等),是版本升级或脚本调整后的常用修复手段。 - Flyway 8.x对PostgreSQL的兼容性覆盖9.5至14.x版本,升级时仅需保证驱动版本匹配,无额外历史表迁移操作要求。
内容的提问来源于stack exchange,提问作者Ravi D
相关产品推荐
相关产品推荐

