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>        

 

總結

記錄遇到的問題,耐心點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM