package org.zalando.catwatch.backend.postgres; import org.flywaydb.core.Flyway; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer; import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy; import org.springframework.jdbc.core.JdbcTemplate; import static org.zalando.catwatch.backend.repo.util.DatabasePing.isDatabaseAvailable; public class OptionalFlywayMigrationInitializer extends FlywayMigrationInitializer { @Autowired private JdbcTemplate jdbcTemplate; public OptionalFlywayMigrationInitializer(Flyway flyway, FlywayMigrationStrategy migrationStrategy) { super(flyway, migrationStrategy); } @Override public void afterPropertiesSet() throws Exception { if (isDatabaseAvailable(jdbcTemplate)) { super.afterPropertiesSet(); } } }