flyway 应用升级脚本失败

2月 12, 2020 |

flyway 校验失败
flyway在升级数据库的时候会校验已经应用的版本是否有改动,也就是checksum 是否一致。如果发现不一致,那么会修复flyway_schema_history 表中对应记录的checksum,然后程序终止,提示用户去手动的检查当前修复的版本(看日志错误信息确定是那个sql 应用失败),当然如果是git的版本合并,或者是字符重新编码,内容相同而checksum不一样, 那么直接重启就好了。

如果待升级的sql 文件乱序了怎么办
flyway 将版本转换成多个bigInteger进行排序确定各个sql文件的应用顺序,如果乱序了且你的配置中指定了OutOfOrder=true, 那么该乱序的sql文件也会被应用,没有指定OutOfOrder属性就只能升级版本了

如果手动执行了某个sql脚本,导致flyway失败怎么办?
通过日志或者flyway_schema_history.success=0的记录确定是哪个sql应用失败。然后手动应用该sql,然后将flyway_schema_history.success=1,再继续后面版本的升级

Posted in: java基础

Comments are closed.