使用Flyway做数据库版本管理

本文详细介绍了如何在Spring Boot项目中使用Flyway进行数据库版本控制。通过理解Flyway的工作原理,遵循脚本命名规范,新项目可以轻松接入Flyway,而现有数据库可以通过特定方式与Flyway集成。配置、禁用以及控制执行时机的方法也在文中提及。
摘要由CSDN通过智能技术生成

使用Flyway做数据库版本管理

Flyway是一个开源的数据库版本控制迁移工具,使用它可以很便利的控制数据库在迭代过程中产生的变动和更新操作。支持多种数据库以及多种使用方式,如Client工具、Maven插件、Spring Boot集成等等。

本文介绍了Flyway在Spring Boot中的使用。

工作原理

Flyway会在目标数据库中新增一个记录迁移版本的元数据表,用来跟踪我们已经完成了哪些迁移脚本以及何时完成。 此元数据表记录了已经应用的迁移脚本、版本号、描述、校验和以及状态等:

image-20220726150052258

执行步骤:

  1. 检查数据库以定位其元数据表(可配置该表名,在Spring Boot中的默认配置为flyway_schema_history)。如果该元数据表不存在则会创建一个;
  2. 扫描应用程序类路径以查找可用迁移脚本;
  3. 将脚本与元数据表进行比较。如果版本号低于或等于当前应用的版本,则将其忽略;
  4. 将其他剩余的迁移标记为待处理的迁移。根据版本号排序并按顺序执行;
  5. 随着每次迁移的完成,元数据表都会相应地更新。

脚本命名说明

Flyway使用约定的脚本文件命名方式代替配置,文件名格式为:V{version}__{description}.sql

首字母可以是V或者RV表示是版本化文件,执行过后不可再变。R表示如果当前脚本checksum有变化,就会在迁移时再次执行。

version表示版本号,以_或者.分隔。

description表示版本描述,与version之间使用两个下划线__分隔,在版本描述中如果有多个单词则以_空格分隔。

示例:

V1_1__Init.sql
V1_2__Add_table.sql

Spring Boot实战

全新接入

  1. 在Spring Boot工程中添加Maven依赖
<dependency>
      <groupId>org.flywaydb</groupId>
      <artifactId>flyway-core</artifactId>
      <!-- 如果导入了Spring Boot 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歌酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值