錯誤一: 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>
總結
記錄遇到的問題,耐心點。