Flyway是一个数据库版本化管理工具,通过SQL脚本实现DB Migration自动化升级,支持独立运行,也可以和构建工具或者Spring开发环境集成。本文分享Spring集成Flyway的配置方法,以及项目中的使用示例。


代码文件

功能要点

SpringBoot集成Flyway

pom.xml

引入Flyway依赖flyway-core

application.yml

配置数据源,也可以指定独立的Flyway配置。

resources\db\migration\

SQL脚本,比如V1.0.0__init.sql,名称规则可配置。

数据库版本信息

数据表:flyway_schema_history

Flyway记录Migration信息和状态,数据表名称可配置。

 

代码

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

 

SpringBoot集成Flyway

1. 新建SpringBoot项目时,选中Flyway,将自动添加Flyway依赖。

 Spring集成Flyway,版本化管理数据库_第1张图片

2. 已有SpringBoot项目,可以在pom.xml中直接引用Flyway:


   org.flywaydb
   flyway-core

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+版本号+双下划线+描述

 Spring集成Flyway,版本化管理数据库_第2张图片

启动程序时,Flyway自动检查并运行SQL脚本

 image.png

数据库版本信息

Flyway将版本信息和状态保存到数据表flyway_schema_history

image.png