logo头像
Snippet 博客主题

Flyway的部署

介绍

Flyway官网的介绍是

数据库的版本控制。
跨所有环境的强大架构演变。
轻松,愉快和简单的SQL。

三句言简意赅的话如同Flyway本身一样犀利,通过Flyway我们可以轻松简单的对我们系统所使用的数据库进行跨环境版本控制。于是再也不会出现测试2和测试1的表结构不一样的问题了!
Flyway

使用

  1. 集成Flyway插件
    以Maven举例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <project xmlns="...">
    ...
    <build>
    <plugins>
    <plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>5.2.4</version>
    </plugin>
    </plugins>
    </build>
    </project>
  2. 初始化版本

    1. 在 resource 文件夹下增加 db/migraton
    2. 在 migraton 目录添加基础SQL版本文件:V1__Base_version.sql
      版本命名规则参见: https://flywaydb.org/getstarted/how
      主要为V[版本]__[版本名称(以单下划线分隔单词)].sql
    3. 运行
      1
      mvn flyway:baseline -Dflyway.url=[数据库地址] -Dflyway.user=[数据库用户名] -Dflyway.password=[数据库密码]

此时对应数据库会出现 flyway_schema_history 表,表中记录了初始化版本 << Flyway Baseline >> 信息

  1. 配置执行命令
    为了每次部署都可以将变更的 SQL 同步到指定环境,我们将 Flyway 执行命令配置到自动部署工具,如下:
    1
    mvn flyway:migrate -Dflyway.url=[数据库地址] -Dflyway.user=[数据库用户名] -Dflyway.password=[数据库密码]

这样,Flyway 就配置好了,每次部署都会去resource//db/migraton目录下查找最新的变更记录和数据库中 flyway_schema_history 表记录的变更记录进行比较然后执行有变更的脚本保持结构一致。

更多信息参考:Flyway by Boxfuse • Database Migrations Made Easy.

微信打赏

赞赏是不耍流氓的鼓励