Flyway是一個數據庫版本化管理工具,通過SQL腳本實現DB Migration自動化升級,支持獨立運行,也可以和構建工具或者Spring開發(fā)環(huán)境集成。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網頁空間、營銷軟件、網站建設、衢州網站維護、網站推廣。
?
總結在實際開發(fā)過程中常見錯誤,分享解決方法和建議:
?
l?migrate運行失敗,提示sql腳本錯誤
解決:獨立運行flyway命令repair修復數據庫中的升級信息,糾正SQL錯誤后再次migrate
建議:運行migrate之前,首先確保SQL正確。
?
l?migrate沒有運行增加的SQL腳本
解決:SQL腳本命名遵守規(guī)則,比如V1.0.0__init.sql
?
l?migrate運行失敗,提示權限不夠,“xxx command denied to user ‘xxx’”
解決:賬號需要擁有對應sql腳本需要的權限,比如create table
?
l?migrate運行失敗,提示數據庫不空,“Found non-empty schema(s)”
解決:按照提示獨立運行flyway命令baseline初始化。
建議:清空數據庫,初始化從空數據庫開始。
?
l?提示找不到數據庫,“unkown database ‘xxx’”
解決:需要先創(chuàng)建出來一個空數據庫。
?
l?Spring集成Flyway后,清空數據,啟動失敗
解決:確認validationQuery,是否select 1 from dual還是某個指定的數據表??諗祿鞎r需使用dual
?
l?Spring集成Flyway后,啟動運行出錯
解決:某些依賴數據庫的bean,需要指定在Flyway完成migrate之后運行
?
l?SQL腳本V1.0__xxx.sql沒有被運行
解決:Flyway通過版本號碼唯一區(qū)分腳本,如果最開始運行baseline,Flyway將自動創(chuàng)建版本1.0
建議:1,從空數據庫開始初始化,不要運行baseline
建議:2,初始化SQL腳本版本號從V1.0.1開始,使用三位數字。