Skip to content

Commit 972ceca

Browse files
Chanwon-Seomhalbritter
authored andcommitted
Allow Flyway's Ignore Migration Patterns setting to be an empty string
See gh-46984 Signed-off-by: Chanwon-Seo <[email protected]>
1 parent 86bb1b4 commit 972ceca

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,6 @@ private void configureProperties(FluentConfiguration configuration, FlywayProper
320320
map.from(properties.getSkipExecutingMigrations())
321321
.to((skipExecutingMigrations) -> configuration.skipExecutingMigrations(skipExecutingMigrations));
322322
map.from(properties.getIgnoreMigrationPatterns())
323-
.whenNot(List::isEmpty)
324323
.to((ignoreMigrationPatterns) -> configuration
325324
.ignoreMigrationPatterns(ignoreMigrationPatterns.toArray(new String[0])));
326325
map.from(properties.getDetectEncoding())

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

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

326326
/**
327327
* Whether to attempt to automatically detect SQL migration file encoding.

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -986,6 +986,21 @@ void ignoreMigrationPatternsCorrectlyMapped() {
986986
.containsExactly(ValidatePattern.fromPattern("*:missing")));
987987
}
988988

989+
@Test
990+
void ignoreMigrationPatternsUsesDefaultValuesWhenNotSet() {
991+
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
992+
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())
993+
.containsExactly(new FluentConfiguration().getIgnoreMigrationPatterns()));
994+
}
995+
996+
@Test
997+
void ignoreMigrationPatternsWhenEmpty() {
998+
this.contextRunner.withUserConfiguration(EmbeddedDataSourceConfiguration.class)
999+
.withPropertyValues("spring.flyway.ignore-migration-patterns=")
1000+
.run((context) -> assertThat(context.getBean(Flyway.class).getConfiguration().getIgnoreMigrationPatterns())
1001+
.isEmpty());
1002+
}
1003+
9891004
private ContextConsumer<AssertableApplicationContext> validateFlywayTeamsPropertyOnly(String propertyName) {
9901005
return (context) -> {
9911006
assertThat(context).hasFailed();

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/flyway/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(properties.getIgnoreMigrationPatterns().stream().map(ValidatePattern::fromPattern))
100+
.containsExactly(configuration.getIgnoreMigrationPatterns());
98101
}
99102

100103
@Test

0 commit comments

Comments
 (0)