Flyway是一個數據庫版本化管理工具,經過SQL腳本實現DB Migration自動化升級,支持獨立運行,也能夠和構建工具或者Spring開發環境集成。
sql
總結在實際開發過程當中常見錯誤,分享解決方法和建議:數據庫
l migrate運行失敗,提示sql腳本錯誤ide
解決:獨立運行flyway命令repair修復數據庫中的升級信息,糾正SQL錯誤後再次migrate工具
建議:運行migrate以前,首先確保SQL正確。spa
l migrate沒有運行增長的SQL腳本開發
解決:SQL腳本命名遵照規則,好比V1.0.0__init.sqlit
l migrate運行失敗,提示權限不夠,「xxx command denied to user ‘xxx’」自動化
解決:帳號須要擁有對應sql腳本須要的權限,好比create tableio
l migrate運行失敗,提示數據庫不空,「Found non-empty schema(s)」構建工具
解決:按照提示獨立運行flyway命令baseline初始化。
建議:清空數據庫,初始化從空數據庫開始。
l 提示找不到數據庫,「unkown database ‘xxx’」
解決:須要先建立出來一個空數據庫。
l Spring集成Flyway後,清空數據,啓動失敗
解決:確認validationQuery,是否select 1 from dual仍是某個指定的數據表。空數據庫時需使用dual
l Spring集成Flyway後,啓動運行出錯
解決:某些依賴數據庫的bean,須要指定在Flyway完成migrate以後運行
l SQL腳本V1.0__xxx.sql沒有被運行
解決:Flyway經過版本號碼惟一區分腳本,若是最開始運行baseline,Flyway將自動建立版本1.0
建議:1,從空數據庫開始初始化,不要運行baseline
建議:2,初始化SQL腳本版本號從V1.0.1開始,使用三位數字。