码迷,mamicode.com
首页 > 其他好文 > 详细

Flyway 学习时遇到的错误

时间:2019-08-15 21:24:10      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:表达式   历史记录   sch   ofo   顺序   express   lin   sel   exp   

错误一: 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 学习时遇到的错误

标签:表达式   历史记录   sch   ofo   顺序   express   lin   sel   exp   

原文地址:https://www.cnblogs.com/chaojizhengui/p/FlywayIssues.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!