Spring集成Flyway,版本化管理數據庫

Flyway是一個數據庫版本化管理工具,經過SQL腳本實現DB Migration自動化升級,支持獨立運行,也能夠和構建工具或者Spring開發環境集成。本文分享Spring集成Flyway的配置方法,以及項目中的使用示例。
mysql


代碼文件git

功能要點github

SpringBoot集成Flywayspring

pom.xmlsql

引入Flyway依賴flyway-core數據庫

application.ymlapp

配置數據源,也能夠指定獨立的Flyway配置。ide

resources\db\migration\工具

SQL腳本,好比V1.0.0__init.sql,名稱規則可配置。url

數據庫版本信息

數據表:flyway_schema_history

Flyway記錄Migration信息和狀態,數據表名稱可配置。

 

代碼

Github下載:https://github.com/jextop/StarterApi/

 

SpringBoot集成Flyway

1. 新建SpringBoot項目時,選中Flyway,將自動添加Flyway依賴。

 image.png

2. 已有SpringBoot項目,能夠在pom.xml中直接引用Flyway:

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

3. application.yml中配置數據源以及Flyway:

spring:
  flyway:
    locations: ["classpath:db/migration"]
    table: flyway_schema_history

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
    username: root
    password: root

 

resources\db\migration\目錄下,添加SQL腳本

腳本文件路徑和命名規則均可以配置,注意版本號遞增,默認爲:V+版本號+雙下劃線+描述

 image.png

啓動程序時,Flyway自動檢查並運行SQL腳本

 image.png

數據庫版本信息

Flyway將版本信息和狀態保存到數據表flyway_schema_history

image.png

相關文章
相關標籤/搜索