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信息和状态,数据表名称可配置。 |
l 代码
Github下载:https://github.com/jextop/StarterApi/
l SpringBoot集成Flyway
1. 新建SpringBoot项目时,选中Flyway,将自动添加Flyway依赖。
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
l 在resources\db\migration\目录下,添加SQL脚本
脚本文件路径和命名规则均可以配置,注意版本号递增,默认为:V+版本号+双下划线+描述
l 启动程序时,Flyway自动检查并运行SQL脚本
l 数据库版本信息
Flyway将版本信息和状态保存到数据表flyway_schema_history