清淨
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Flyway

    • 简介
    • 快速开始
    • Spring Boot 整合原理
    • Flyway 原理
    • 配置

快速开始

以下基于 Spring Boot 整合 Flyway 进行说明。

  1. 添加依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

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

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

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

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
  1. 配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///mytest?useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
  flyway:
    enabled: true
    # sql 文件存放路径
    locations: classpath:sql/
    table: APP_SCHEMA_HISTORY
    out-of-order: true
    clean-disabled: true
    baseline-on-migrate: true
    baseline-version: 1
    validate-on-migrate: false
    placeholder-replacement: false
    url: jdbc:mysql:///mytest?useSSL=false&serverTimezone=Asia/Shanghai
    user: root
    password: 123456
  1. SQL 文件
  • classpath:sql/V1_2024/V1_202412/V1.20241203.01__MY_APP.sql
-- 需要把 SQL 文件放在 `src/main/resources/sql/**` 目录下
create table tb_user (
    id int not null,
    user_name varchar(50),
    age int,
    primary key (id)
);

insert into tb_user(id, user_name, age) values (1, 'zs', 13);
  • classpath:sql/V1_2024/V1_202412/V1.20241203.02__MY_APP.sql
insert into tb_user(id, user_name, age) values (2, 'ww', 15);
  • classpath:sql/V1_2025/V1_202501/V1.20250101.01__MY_APP.sql
alter table tb_user add column email varchar(50);

insert into tb_user(id, user_name, age, email) values (3, 'zl', 16, 'daijunfeng.me@qq.com');

做完上面的操作之后,启动应用。Flyway 会自动执行 SQL 文件中的脚本,并在数据库中创建 MY_SCHEMA_HISTORY 表来记录迁移历史。

想要编辑此页?
上次更新: 2025/6/3 20:29
贡献者: Junfeng Dai
←简介Spring Boot 整合原理→
[ 纸上得来终觉浅绝知此事要躬行 ]
Copyright © 2021-present Junfeng Dai
蜀ICP备2021009537号