jquery 的网站模板教育培训机构加盟十大排名
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&characterEncoding=utf8&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
脚本。