diff --git a/persistence-modules/flyway/src/main/java/com/baeldung/flywaycallbacks/EmptyMigrationStrategyConfig.java b/persistence-modules/flyway/src/main/java/com/baeldung/flywaycallbacks/EmptyMigrationStrategyConfig.java new file mode 100644 index 0000000000..8f733364b7 --- /dev/null +++ b/persistence-modules/flyway/src/main/java/com/baeldung/flywaycallbacks/EmptyMigrationStrategyConfig.java @@ -0,0 +1,20 @@ +package com.baeldung.flywaycallbacks; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class EmptyMigrationStrategyConfig { + + private Log log = LogFactory.getLog("EmptyMigrationStrategy"); + + @Bean + public FlywayMigrationStrategy flywayMigrationStrategy() { + return flyway -> { + log.info("Skipping Flyway migration!"); + }; + } +} diff --git a/persistence-modules/flyway/src/main/resources/application.properties b/persistence-modules/flyway/src/main/resources/application.properties index e69de29bb2..4d339eca5c 100644 --- a/persistence-modules/flyway/src/main/resources/application.properties +++ b/persistence-modules/flyway/src/main/resources/application.properties @@ -0,0 +1 @@ +#flyway.enabled=false \ No newline at end of file diff --git a/persistence-modules/flyway/src/test/java/com/baeldung/flywaycallbacks/ManualFlywayMigrationIntegrationTest.java b/persistence-modules/flyway/src/test/java/com/baeldung/flywaycallbacks/ManualFlywayMigrationIntegrationTest.java new file mode 100644 index 0000000000..12edec39e7 --- /dev/null +++ b/persistence-modules/flyway/src/test/java/com/baeldung/flywaycallbacks/ManualFlywayMigrationIntegrationTest.java @@ -0,0 +1,36 @@ +package com.baeldung.flywaycallbacks; + +import org.flywaydb.core.Flyway; +import org.flywaydb.core.api.MigrationInfo; +import org.flywaydb.core.api.MigrationState; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ManualFlywayMigrationIntegrationTest { + + @Autowired + private Flyway flyway; + + @Test + public void skipAutomaticAndTriggerManualFlywayMigration() { + + assertAllMigrationsAre(MigrationState.PENDING); + + flyway.migrate(); + + assertAllMigrationsAre(MigrationState.SUCCESS); + } + + private void assertAllMigrationsAre(MigrationState expectedState) { + for (MigrationInfo migrationInfo : flyway.info().all()) { + assertThat(migrationInfo.getState()).isEqualTo(expectedState); + } + } +}