Spring Boot 集成 Flyway

1. 基本介绍

2. 添加 Maven 依赖

<!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core -->
<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>5.2.4</version>
</dependency>
1
2
3
4
5
6

注:

Spring Boot will then automatically autowire Flyway with its DataSource and invoke it on startup.

3. 创建版本化 SQL 脚本

  • 配置脚本所在目录

    • 默认值为 classpath:/db/migration

    • application.properties 中设置自定义的目录

    flyway.locations=classpath:/database
    
    1
  • 创建脚本

    • 文件名以类似于 V<version>__<name>.sql 这种格式命名

    • version 为版本数字,以下划线分隔。如:1, 2_1, 等。

    • 举例:V1__init.sql

4. 其他事项

  • 脚本一旦执行过,就不可再修改。只能添加新一版本。

  • 已有数据库数据的情况下,需要做如下设置才能使用 Flyway

# set baselineOnMigrate to true to initialize the schema history table.
# 
# Default spring.flyway.baseline-verion=1, so create sql from "V2__"
# (need further investigation)
spring.flyway.baseline-on-migrate=true
1
2
3
4
5
  • 历史记录查询
select * from flyway_schema_history;
1
  • 相关参数都可以在 Spring Boot 的 application.properties 文档中查询
最近更新: 7/27/2019, 6:48:23 PM