Flyway 学习时遇到的错误

Posted chaojizhengui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flyway 学习时遇到的错误相关的知识,希望对你有一定的参考价值。

错误一: 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>        

 

总结

记录遇到的问题,耐心点。

 

以上是关于Flyway 学习时遇到的错误的主要内容,如果未能解决你的问题,请参考以下文章

flyway迁移后弹簧数据不计算SERIAL列的行数

Flyway 发现多个版本的迁移

从 Flyway 调用 Oracle 程序

在 Flyway 脚本中安全地重命名 MySQL 表名

新的 Flyway 迁移破坏了现有的 jOOQ 生成的代码

flyway 后的 Flyway 迁移错误:基线