SpringBoot集成flyway

1、导入依赖

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

2、编写配置文件

spring:
  flyway:
    # 是否启用flyway
    enabled: true
    # 编码格式,默认UTF-8
    encoding: UTF-8
    # 迁移sql脚本文件存放路径,默认db/migration
    locations: classpath:db
    # 迁移sql脚本文件名称的前缀,默  认V
    sql-migration-prefix: V
    # 迁移sql脚本文件名称的分隔符,默认2个下划线__
    sql-migration-separator: __
    # 迁移sql脚本文件名称的后缀
    sql-migration-suffixes: .sql
    # 执行迁移时是否自动调用验证   当你的 版本不符合逻辑 比如 你先执行了 DML 而没有 对应的DDL 会抛出异常
    validate-on-migrate: true
    # 如果没有 flyway_schema_history 这个 metadata 表, 在执行 flyway migrate 命令之前, 必须先执·行 flyway baseline 命令
    # 设置为 true 后 flyway 将在需要 baseline 的时候, 自动执行一次 baseline
    baseline-on-migrate: true
    # metadata 版本控制信息表 默认 flyway-schema-history加服务名称
    table: flyway-schema-history-${spring.application.name}
    # 指定 baseline 的版本号,默认值为 1, 低于该版本号的 SQL 文件, migrate 时会被忽略
    baseline-version: 0

注意:同时需要配置连接源

3、创建sql文件、并启动项目

按照配置的规则命名就行

从上图可以看出在项目启动时会先创建一个管理db的表,再运行我们编写在项目中的sql并记录下来,在本地开发阶段的话,你如果嫌每次改表的字段都需要删除现有的表和管理表的记录很麻烦的话,你可以手动修改,然后修改管理表中对应记录的checksum字段,checksum在项目运行会校验并返回新的

4、多服务同数据库下把以下参数改成false

validate-on-migrate: false

或者命名注意版本、或者将db放入公共服务中

总结:

这样做的好处就是如果企业有一套以上的环境,并且每套环境都配有对应的数据库,如果这时候没有数据版本控制工具的话,是不是每更新一套环境都需要去本次更新锁更改的db,万一改错了还会导致项目出bug,如果集成了flyway的话就不用考虑这些问题,因为我们的建表db、插入字段等等都可以写在项目中,项目启动之后就会去更新连接的数据源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值