Skip to content

Commit 6d8b830

Browse files
committed
Fix Allow ignoreMigrationPatterns to be empty
Removes the `.whenNot(List::isEmpty)` condition to allow clearing the ignore-migration-patterns property via an empty string. To avoid affecting existing users, the property's default is now aligned with Flyway's default of `*:future` Signed-off-by: Chanwon-Seo <[email protected]>
1 parent 3c3849e commit 6d8b830

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

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

Lines changed: 3 additions & 3 deletions
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 @Nullable List<String> ignoreMigrationPatterns;
326+
private List<String> ignoreMigrationPatterns = Collections.singletonList("*:future");
327327

328328
/**
329329
* Whether to attempt to automatically detect SQL migration file encoding.
@@ -757,11 +757,11 @@ public void setSkipExecutingMigrations(@Nullable Boolean skipExecutingMigrations
757757
this.skipExecutingMigrations = skipExecutingMigrations;
758758
}
759759

760-
public @Nullable List<String> getIgnoreMigrationPatterns() {
760+
public List<String> getIgnoreMigrationPatterns() {
761761
return this.ignoreMigrationPatterns;
762762
}
763763

764-
public void setIgnoreMigrationPatterns(@Nullable List<String> ignoreMigrationPatterns) {
764+
public void setIgnoreMigrationPatterns(List<String> ignoreMigrationPatterns) {
765765
this.ignoreMigrationPatterns = ignoreMigrationPatterns;
766766
}
767767

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,14 @@ void ignoreMigrationPatternsCorrectlyMapped() {
898898
}
899899

900900
@Test
901-
void ignoreMigrationPatternsIsEmpty() {
901+
void ignoreMigrationPatternsUsesDefaultValuesWhenNotSet() {
902+
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
903+
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())
904+
.containsExactly(new FluentConfiguration().getIgnoreMigrationPatterns()));
905+
}
906+
907+
@Test
908+
void ignoreMigrationPatternsWhenEmpty() {
902909
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
903910
.withPropertyValues("spring.flyway.ignore-migration-patterns=")
904911
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())

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)