SpringBoot项目集成Flyway以及Flyway介绍

如果你还在为不同环境的数据库表字段变动报错而烦恼,甚至简单粗暴的将开发库直接导出并导入sit甚至prod环境,建议一起来了解一下 Flyway 的用法。

概述

Flyway是一款数据库迁移(migration)工具。简单地说,flyway是一个能对数据库变更做版本控制的工具。使用 Flyway,对数据库的所有更改都称为迁移。迁移可以是版本化的或 可重复的。版本化迁移有两种形式:常规和撤消

如何在一个 Spring Boot 项目中引入 Flyway

在 Spring Boot 项目中,引入 Flyway 非常简单,因为在 Spring Boot 的 spring-boot-autoconfigure 中包含了 Flyway 的自动配置,只要添加 flyway 的依赖即可。

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

命名

为了被 Flyway 采用,SQL 迁移必须符合以下命名模式:

文件名由以下部分组成:

  • 前缀V用于版本化迁移、U撤消迁移、R可重复迁移
  • 版本:下划线(在运行时自动替换为点)分隔任意数量的部分(不适用于可重复的迁移)
  • 分隔符:(__两个下划线)
  • 说明:下划线(运行时自动替换为空格)分隔单词
  • 后缀.sql
  • 文件路径:classpath:db/migration

基本的yaml配置

spring:
  flyway:
    # 是否启用flyway
    enabled: true
    #若启动环境中的的数据库中有数据,但是没有flyway的历史表时,
    #false--启动会报错,true--继续生成flyway历史表完成脚本
    baseline-on-migrate: true
    # 执行时标记的tag 默认为<<Flyway Baseline>>
    baseline-description: <<Flyway Baseline>>
    # 检测迁移脚本的路径是否存在,如不存在,则抛出异常
    check-location: false
    # 脚本位置
    locations: classpath:db/migration
    # 在迁移时,是否校验脚本,假设V1.0__初始.sql已经迁移过了,在下次启动时会校验该脚本是否有变更过,则抛出异常
    validate-on-migrate: false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值