当前位置: 首页 > news >正文

flyway的ignoreMigrationPatterns

1、概述

        ignoreMigrationPatterns 是 Flyway 中的一个配置选项,用于指定在迁移过程中可以忽略的迁移脚本的模式。这个选项通常用于在特定情况下跳过某些迁移脚本的执行,例如在开发环境中跳过某些测试数据脚本,或者在特定条件下忽略某些已经不再需要的迁移。

  • Flyway 6.0.0 引入了 ignoreMigrationPatterns,取代了 ignoreMissingMigrations

  • ignoreMigrationPatterns 提供了更灵活的模式匹配功能,支持忽略多种类型的迁移脚本。

  • 如果你使用的是 Flyway 6.0.0 或更高版本,建议使用 ignoreMigrationPatterns 来替代 ignoreMissingMigrations

官方文档:Customize validation rules with ignoreMigrationPatterns - Redgate Flyway - Product Documentation

2、作用

        ignoreMigrationPatterns 允许你定义一个或多个模式(Pattern),Flyway 会根据这些模式来决定是否忽略某些迁移脚本。如果迁移脚本的名称或路径匹配了这些模式,Flyway 将不会执行这些脚本。

3、使用场景

  • 跳过测试数据脚本:在开发环境中,你可能有一些用于插入测试数据的迁移脚本,但在生产环境中不需要执行这些脚本。

  • 忽略已废弃的迁移:某些迁移脚本可能已经不再需要,但你不想删除它们,可以使用此选项来忽略它们。

  • 条件性迁移:在某些特定条件下,你可能希望跳过某些迁移脚本的执行。

4、配置方式

        ignoreMigrationPatterns 可以在 Flyway 的配置文件中进行配置,例如在 application.yml 文件中,或者在 Maven的插件配置中。

application.yml 文件

spring:flyway:ignore-migration-patterns:- "*:missing" #忽略缺失的迁移脚本。如果某个迁移脚本在文件系统中存在但在数据库中不存在,Flyway 将忽略它。

 Maven的插件

<plugin><groupId>org.flywaydb</groupId><artifactId>flyway-maven-plugin</artifactId><configuration><url>jdbc:mysql://localhost:3306/flyway?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT</url><user>root</user><password>123456</password><driver>com.mysql.cj.jdbc.Driver</driver><cleanDisabled>true</cleanDisabled><outOfOrder>true</outOfOrder><ignoreMigrationPatterns><pattern>*:missing</pattern><pattern>*:future</pattern></ignoreMigrationPatterns></configuration>
</plugin>

5、模式语法

ignoreMigrationPatterns 支持以下模式:

  • *:missing:忽略缺失的迁移脚本。如果某个迁移脚本在文件系统中存在但在数据库中不存在,Flyway 将忽略它。

  • *:future:忽略未来的迁移脚本。如果某个迁移脚本的版本号高于当前数据库的版本号,Flyway 将忽略它。

  • *:failed:忽略失败的迁移脚本。如果某个迁移脚本之前执行失败,Flyway 将忽略它。

  • *:outOfOrder:忽略乱序的迁移脚本。如果某个迁移脚本的版本号低于当前数据库的版本号,但尚未执行,Flyway 将忽略它。

你也可以使用自定义的模式来匹配特定的迁移脚本名称或路径。

6、示例

假设你有以下迁移脚本:

V1__Initial_schema.sql
V2__Add_users_table.sql
V3__Add_test_data.sql

你希望在生产环境中忽略 V3__Add_test_data.sql,可以在配置中添加以下内容:

flyway.ignoreMigrationPatterns=*:missing,*:future,V3__Add_test_data.sql

这样,Flyway 将不会执行 V3__Add_test_data.sql 脚本。

http://www.lryc.cn/news/540082.html

相关文章:

  • 25年2月通信基础知识补充:多普勒频移与多普勒扩展、3GPP TDL信道模型
  • 华为动态路由-OSPF-骨干区
  • 接口测试-API测试中常用的协议(中)
  • 植物大战僵尸杂交版v3.2.1最新版本(附下载链接)
  • java每日精进 2.20 MQ相关复健
  • 【设计模式精讲】结构型模式之代理模式(静态代理、JDK动态代理、cglib动态代理)
  • 京东广告基于 Apache Doris 的冷热数据分层实践
  • win11 安装pyenv来管理python
  • 【AI】GitHub Copilot
  • 【LeetCode 热题100】76. 最小覆盖子串的算法思路及python代码
  • 力扣-回溯-17 电话号码的字母组合
  • [AHOI2018初中组] 分组---贪心算法
  • 知识图谱-学习计划
  • 网安作业3
  • 快速提升网站收录:内容创作的艺术
  • 【C语言】CreateFile函数用法介绍
  • 蓝桥杯好数
  • SOME/IP--协议英文原文讲解10
  • 欢乐力扣:赎金信
  • 【量化科普】Standard Deviation,标准差
  • stm32单片机个人学习笔记15(I2C通信协议)
  • 网络安全防护
  • YOLOV7的复现过程
  • uniapp实现app的pdf预览
  • 用Java创建一个验证码的工具类
  • uvm中的激励是如何发送出去的
  • 一只企鹅如何改变世界
  • 拦截器VS过滤器:Spring Boot中请求处理的艺术!
  • C语言预处理学习笔记
  • LLM基础环境准备-云服务器