Skip to content

Commit 3b38a5e

Browse files
committed
Fix Allow ignoreMigrationPatterns to be empty
Removes the `.whenNot(List::isEmpty)` check to allow clearing the property. The property's default is aligned with Flyway's to avoid breaking existing behavior, and new tests verify both changes. Signed-off-by: Chanwon-Seo <[email protected]>
1 parent 4048f78 commit 3b38a5e

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

module/spring-boot-flyway/src/main/java/org/springframework/boot/flyway/autoconfigure/FlywayProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ public class FlywayProperties {
323323
/**
324324
* List of patterns that identify migrations to ignore when performing validation.
325325
*/
326-
private List<String> ignoreMigrationPatterns = new ArrayList<>(Collections.singletonList("*:future"));
326+
private List<String> ignoreMigrationPatterns = Collections.singletonList("*:future");
327327

328328
/**
329329
* Whether to attempt to automatically detect SQL migration file encoding.

module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayAutoConfigurationTests.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -898,10 +898,18 @@ void ignoreMigrationPatternsCorrectlyMapped() {
898898
}
899899

900900
@Test
901-
void ignoreMigrationPatternsIsFutureByDefault() {
901+
void ignoreMigrationPatternsUsesDefaultValuesWhenNotSet() {
902902
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
903903
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())
904-
.containsExactly(ValidatePattern.fromPattern("*:future")));
904+
.containsExactly(new FluentConfiguration().getIgnoreMigrationPatterns()));
905+
}
906+
907+
@Test
908+
void ignoreMigrationPatternsWhenEmpty() {
909+
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
910+
.withPropertyValues("spring.flyway.ignore-migration-patterns=")
911+
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())
912+
.isEmpty());
905913
}
906914

907915
private ContextConsumer<AssertableApplicationContext> validateFlywayTeamsPropertyOnly(String propertyName) {

module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayPropertiesTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.flywaydb.core.api.configuration.ClassicConfiguration;
3131
import org.flywaydb.core.api.configuration.Configuration;
3232
import org.flywaydb.core.api.configuration.FluentConfiguration;
33+
import org.flywaydb.core.api.pattern.ValidatePattern;
3334
import org.junit.jupiter.api.Test;
3435

3536
import org.springframework.beans.BeanWrapper;
@@ -95,6 +96,8 @@ void defaultValuesAreConsistent() {
9596
assertThat(properties.getScriptPlaceholderSuffix()).isEqualTo(configuration.getScriptPlaceholderSuffix());
9697
assertThat(properties.isExecuteInTransaction()).isEqualTo(configuration.isExecuteInTransaction());
9798
assertThat(properties.getCommunityDbSupportEnabled()).isNull();
99+
assertThat(configuration.getIgnoreMigrationPatterns()).extracting(Object::toString)
100+
.isEqualTo(properties.getIgnoreMigrationPatterns());
98101
}
99102

100103
@Test

0 commit comments

Comments
 (0)