Dragon
真诚欢迎您的来访,留言,投稿!欢迎(Ctrl+D)收藏并经常访问本站 --- 3uyx.com
  • 真诚欢迎您的来访,留言,投稿!欢迎(Ctrl+D)收藏并经常访问本站 --- 3uyx.com
adminAdmin  2024-07-05 11:40 沃付网络 隐藏边栏 |   抢沙发  6 
文章评分 0 次,平均分 0.0

对于多环境的应用,这样手把手去操作就比较麻烦了,而且还有可能会出错,如果我们使用数据库版本管理工具进行自动迁移和数据填充,就可以直接适配到 N 多个环境,再也不用去担心每个环境数据库结构的差异。

依赖

首先,我们需要先引入 Flyway 的依赖,大家也可以到这里去查找版本:https://mvnrepository.com/artifact/org.flywaydb/flyway-core

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>7.1.1</version>
</dependency>
需要注意,如果你使用的数据库版本是 5.7,则不能使用最新的版本,版本 7.1.1 实测可以用于 5.7。

配置

我们需要在 application.yml 中开启自动迁移配置:

spring:
  flyway:
    baseline-on-migrate: true
    clean-disabled: true

开启以上配置,会在数据库中自动创建名为 flyway_schema_history 的表,已记录迁移数据和状态。

表文件规则

默认 DDL 的 SQL 文件读取位置为 /resource/db/migration 下,你也可以使用 spring.flyway.locations 进行自定义设定;
然后我们在此目录下新增 DDL/DML 文件即可,不过有几点需要注意:

  1. 数据表以 Vx.x.x__ 开头,其中 x.x.x 代表版本号,你可以为 x.x 或者 x,这都是没问题的;比如V2.0.0 的新增用户表即为V2.0.0__create_user_ddl.sql
  2. 以 Rx.x.x__ 开头的文件会重复执行,如果你修改了此文件则会进行执行,无修改则不会执行。
  3. 以 Vx.x.x__ 开头的文件一旦执行成功,便不允许再进行任何修改,不然会出现启动异常。
  4. 版本号应该全局唯一的,不然会抛出异常提示有重复的版本,建议递增处理。

另外,如果是基础表结构可以直接名为V1.0.0__init.sql,这样就会在没有数据表的环境中执行创建并初始化表结构。

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

admin
Admin 关注:0    粉丝:0
这个人很懒,什么都没写

发表评论

扫一扫二维码分享
×