首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringBoot项目集成Flyway以及Flyway介绍

SpringBoot项目集成Flyway以及Flyway介绍

作者头像
sunnying
发布2026-04-27 17:19:16
发布2026-04-27 17:19:16
180
举报
文章被收录于专栏:技术运维技术运维

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

概述

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

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

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

代码语言:javascript
复制
<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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 如何在一个 Spring Boot 项目中引入 Flyway
  • 命名
  • 基本的yaml配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档