专业网站制作公司招聘,网站建设整体策划,2015做导航网站,互联网企业网站设计1、概述 ignoreMigrationPatterns 是 Flyway 中的一个配置选项#xff0c;用于指定在迁移过程中可以忽略的迁移脚本的模式。这个选项通常用于在特定情况下跳过某些迁移脚本的执行#xff0c;例如在开发环境中跳过某些测试数据脚本#xff0c;或者在特定条件下忽略某些已经不…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 允许你定义一个或多个模式PatternFlyway 会根据这些模式来决定是否忽略某些迁移脚本。如果迁移脚本的名称或路径匹配了这些模式Flyway 将不会执行这些脚本。
3、使用场景 跳过测试数据脚本在开发环境中你可能有一些用于插入测试数据的迁移脚本但在生产环境中不需要执行这些脚本。 忽略已废弃的迁移某些迁移脚本可能已经不再需要但你不想删除它们可以使用此选项来忽略它们。 条件性迁移在某些特定条件下你可能希望跳过某些迁移脚本的执行。
4、配置方式 ignoreMigrationPatterns 可以在 Flyway 的配置文件中进行配置例如在 application.yml 文件中或者在 Maven的插件配置中。
application.yml 文件
spring:flyway:ignore-migration-patterns:- *:missing #忽略缺失的迁移脚本。如果某个迁移脚本在文件系统中存在但在数据库中不存在Flyway 将忽略它。Maven的插件
plugingroupIdorg.flywaydb/groupIdartifactIdflyway-maven-plugin/artifactIdconfigurationurljdbc:mysql://localhost:3306/flyway?useUnicodetrueamp;characterEncodingutf8amp;serverTimezoneGMT/urluserroot/userpassword123456/passworddrivercom.mysql.cj.jdbc.Driver/drivercleanDisabledtrue/cleanDisabledoutOfOrdertrue/outOfOrderignoreMigrationPatternspattern*:missing/patternpattern*: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 脚本。