1、创建springboot工程,使用的版本为2.4

工程结构如下:

springboot集成flyway实践_mysql

 

 

 

2、增加依赖



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

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>


 

3、application.yml  配置

创建空的数据库flyway



spring:
datasource:
url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
username: root
password: 123456
driver: com.mysql.cj.jdbc.Driver
#flyway配置
flyway:
baseline-on-migrate: true
#数据库连接配置
url: jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
user: root
password: 123456
#忽略脚本顺序
out-of-order: true


  

4、在resources文件夹下创建db/migration 文件夹

springboot集成flyway实践_ico_02

 

 SQL文件的命名需要遵从一定的规范,否则运行的时候会报错。

1、仅需要执行一次的SQL: V开头,后面跟上数字,数字之间可以是"."或者“_"分开。然后再以两个下划线分割。

2、可重复运行的SQL,以”R“开头,后面再跟两个下划线。

 

V1.1__create_user_ddl.sql



CREATE TABLE IF NOT EXISTS `USER`(
`USER_ID` INT(11) NOT NULL AUTO_INCREMENT,
`USER_NAME` VARCHAR(100) NOT NULL COMMENT '用户姓名',
`AGE` INT(3) NOT NULL COMMENT '年龄',
`CREATED_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`CREATED_BY` varchar(100) NOT NULL DEFAULT 'UNKNOWN',
`UPDATED_TIME` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UPDATED_BY` varchar(100) NOT NULL DEFAULT 'UNKNOWN',
PRIMARY KEY (`USER_ID`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


  

V1.2__add_user_dml.sql



insert into `user`(user_name,age) values('lisi',33);


  

R__add_unknown_user.sql.sql



insert into `user`(user_name,age) values('unknown',33);


  

 

5、启动程序

springboot集成flyway实践_mysql_03

 

 

 查看数据库,创建了两张条,分别为flyway_schema_history和user

springboot集成flyway实践_下划线_04

 

 flyway_schema_history表

springboot集成flyway实践_spring_05

 

 

user表

springboot集成flyway实践_ico_06

 

 

6、插件的使用



<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>5.2.1</version>
<configuration>
<url>jdbc:mysql://localhost:3306/flyway?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT</url>
<user>root</user>
<password>root</password>
<driver>com.mysql.cj.jdbc.Driver</driver>
</configuration>
</plugin>


  

参考: ​​https://www.jianshu.com/p/567a8a161641​