过滤 Flyway 迁移

Filtering Flyway migrations

我使用的是 Flyway core 8.0.5,我是这样配置的:

 FluentConfiguration fluentConfiguration = Flyway.configure()
                .dataSource(getDataSource())
                .locations(Optional.ofNullable(scriptsMap.get(getDbVendor())).orElseThrow(() -> new IllegalStateException("Unrecognized case: " + getDbVendor())))
                .encoding("UTF-8");

现在我想要两种模式 - 从给定位置执行所有脚本 - 上面已经准备好了,第二种模式是相同的但我想过滤 Flyway 迁移并只执行脚本名称中有 DDL 的那些, 例如 script_1_DDL.sql

这可能吗?如何实现?

在你的情况下这应该有效:

Flyway.configure()
    .sqlMigrationSuffixes("DDL.sql")
    .load()

参考文献:https://flywaydb.org/documentation/configuration/parameters/sqlMigrationSuffixes and https://flywaydb.org/documentation/usage/api/javadoc/org/flywaydb/core/api/configuration/FluentConfiguration.html#sqlMigrationSuffixes(java.lang.String...)