SpringBoot使用Flyway管理數據庫版本

SpringBoot使用Flyway管理數據庫版本

介紹

Flyway 是一個簡單開源數據庫版本控制器(約定大於配置),主要提供 migrate、clean、info、validate、baseline、repair 等命令。它支持 SQL(PL/SQL、T-SQL)方式和 Java 方式,支持命令行客戶端等,還提供一系列的插件支持(Maven、Gradle、SBT、ANT 等)。java

官網地址:https://flywaydb.org/ 當前版本:5.2.1 maven:git

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

Flyway集成Springboot

Flyway與Springboot集成很方便。github

pom加入引用

pom.xml 加入引用:spring

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

加入sql腳本

在resources目錄下建立db/migration目錄,裏面能夠放入sql腳本,格式以下: "V1__init_database.sql"sql

  • 其中V表示版本關鍵字,其餘的還有U和R,分別用戶撤銷和遷移。
  • 後面的1表示版本號
  • 後面根兩條下劃線,這裏是個坑,剛開始沒注意,只寫了一個,結果一直提示以下錯誤。
Caused by: org.flywaydb.core.api.FlywayException: Wrong migration name format: V1_init_database.sql(It should look like this: V1.2__Description.sql)
  • 再後面跟腳本說明,能夠帶下劃線

目錄結構以下截圖:數據庫

flyway腳本

配置

加入配置:api

enter description here

不過這配置加不加都無所謂,都能執行bash

運行

項目啓動後,數據庫新建完畢,見下圖:maven

enter description here

其中flyway_schema_history是flyway內部使用的表,維護了數據庫的變動記錄,以下:spring-boot

enter description here

整個集成過程仍是很方便的。

示例代碼: github:https://github.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-server gitee:https://gitee.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-server

相關文章
相關標籤/搜索