Flyway版本化管理數據庫常見錯誤和解決方法

Flyway是一個數據庫版本化管理工具,經過SQL腳本實現DB Migration自動化升級,支持獨立運行,也能夠和構建工具或者Spring開發環境集成。
sql

 

總結在實際開發過程當中常見錯誤,分享解決方法和建議:數據庫

 

migrate運行失敗,提示sql腳本錯誤ide

解決:獨立運行flyway命令repair修復數據庫中的升級信息,糾正SQL錯誤後再次migrate工具

建議:運行migrate以前,首先確保SQL正確。spa

 

migrate沒有運行增長的SQL腳本開發

解決:SQL腳本命名遵照規則,好比V1.0.0__init.sqlit

 

migrate運行失敗,提示權限不夠「xxx command denied to user ‘xxx’」自動化

解決:帳號須要擁有對應sql腳本須要的權限,好比create tableio

 

migrate運行失敗,提示數據庫不空「Found non-empty schema(s)」構建工具

解決:按照提示獨立運行flyway命令baseline初始化。

建議:清空數據庫,初始化從空數據庫開始。

 

提示找不到數據庫「unkown database ‘xxx’」

解決:須要先建立出來一個空數據庫。

 

Spring集成Flyway後,清空數據,啓動失敗

解決:確認validationQuery,是否select 1 from dual仍是某個指定的數據表。空數據庫時需使用dual

 

Spring集成Flyway後,啓動運行出錯

解決:某些依賴數據庫的bean,須要指定在Flyway完成migrate以後運行

 

SQL腳本V1.0__xxx.sql沒有被運行

解決:Flyway經過版本號碼惟一區分腳本,若是最開始運行baseline,Flyway將自動建立版本1.0

建議:1,從空數據庫開始初始化,不要運行baseline

建議:2,初始化SQL腳本版本號從V1.0.1開始,使用三位數字。

相關文章
相關標籤/搜索