flyway簡單使用


flyway就是管理數據庫腳本的框架,可以根據不同版本的sql腳本,依次執行,會通過在數據庫建一個表存儲版本信息,在應用啟動時會判斷是否有需要執行的sql腳本

可以方便管理我們一些對數據庫表結構的修改,在不同的環境部署,不需要部署數據庫了,會自動建表修改等.

這里直接講與spring boot集成  在idea中創建spring 工程 已經提供了這個依賴

 <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>

flyway可以不需要如何配置即可使用,默認sql文件存放目錄為/resources/db/migration 目錄下

flyway對sql腳本有命名要求 V版本號__腳本描述.sql 默認是嚴格按照版本號來執行 比如你最新執行了1.3的腳本 那么你這時候放一個1.5的腳本不會執行

當然這個可以關閉,flyway會對每一個執行的腳本文件計算一個值存儲於數據庫中的歷史表,每次啟動時會計算所有已經執行過的腳本的值是否一致,不一致也會報錯

接下來把flyway的所有配置貼出來

flyway.baseline-description對執行遷移時基准版本的描述.
flyway.baseline-on-migrate當遷移時發現目標schema非空,而且帶有沒有元數據的表時,是否自動執行基准遷移,默認false.
flyway.baseline-version開始執行基准遷移時對現有的schema的版本打標簽,默認值為1.
flyway.check-location檢查遷移腳本的位置是否存在,默認false.
flyway.clean-on-validation-error當發現校驗錯誤時是否自動調用clean,默認false.
flyway.enabled是否開啟flywary,默認true.
flyway.encoding設置遷移時的編碼,默認UTF-8.
flyway.ignore-failed-future-migration當讀取元數據表時是否忽略錯誤的遷移,默認false.
flyway.init-sqls當初始化好連接時要執行的SQL.
flyway.locations遷移腳本的位置,默認db/migration.
flyway.out-of-order是否允許無序的遷移,默認false.
flyway.password目標數據庫的密碼.
flyway.placeholder-prefix設置每個placeholder的前綴,默認${.
flyway.placeholder-replacementplaceholders是否要被替換,默認true.
flyway.placeholder-suffix設置每個placeholder的后綴,默認}.
flyway.placeholders.[placeholder name]設置placeholder的value
flyway.schemas設定需要flywary遷移的schema,大小寫敏感,默認為連接默認的schema.
flyway.sql-migration-prefix遷移文件的前綴,默認為V.
flyway.sql-migration-separator遷移腳本的文件名分隔符,默認__
flyway.sql-migration-suffix遷移腳本的后綴,默認為.sql
flyway.tableflyway使用的元數據表名,默認為schema_version
flyway.target遷移時使用的目標版本,默認為latest version
flyway.url遷移時使用的JDBC URL,如果沒有指定的話,將使用配置的主數據源
flyway.user遷移數據庫的用戶名
flyway.validate-on-migrate遷移時是否校驗,默認為true.

 


免責聲明!

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



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