错误一: No plugin found for prefix ‘flyway‘ in the current project and in the plugin groups
找不到Flyway插件
解决方法:
在项目的根目录去运行Flyway命令。例如此项目放在E:\workspaceidea\monitor中,则需要在此目录下执行命令。
错误二:没有用来记录执行日志的历史表
解决方法:
a. 在pom.xml配置文件中加入,这个参数一般是在数据库第一次运行Flyway的时候加上,用来初始化历史记录表
<baselineOnMigrate>true</baselineOnMigrate>
b. 在数据库后台新建一张历史记录表,然后在pom.xml的<configeration>标签中指定配置新建的表作为历史记录表
1 <schemas> 2 <schema>schema1</schema> 3 </schemas> 4 <table>schema_history</table>
错误三:No value provided for placeholder expressions 没有为占位符表达式提供值
解决方法:
在<configuration>标签中增加如下参数:
<!--Flyway对特殊占位符不进行替换--> <placeholderReplacement>false</placeholderReplacement>
错误四: Validate failed: Detected failed migration to version xxx 版本验证错误
造成此错误的原因一般是因为之前xxx版本的维护不成功,日志表记录了此次操作。再次对此版本执行migrate命令。
解决方法:
将数据库日志记录表中的对应版本号的记录删,然后在执行。
错误四: Validate failed: Detected resolved migration not applied to database
请注意下面的版本号1.4
再去看数据库的日志表可以发现,数据库中已经存在version 1.2 和 1.5
出现此问题的原因就是因为Flyway的版本号是严格按顺序的,如果要执行某个中间版本的操作,默认情况下是不允许的。
所以需要更改配置。
解决方法:
在<configuration>标签中增加如下配置
<!--Flyway不严格验证版本顺序--> <outOfOrder>true</outOfOrder>
总结
记录遇到的问题,耐心点。
原文地址:https://www.cnblogs.com/chaojizhengui/p/FlywayIssues.html