com.contentgrid.spring.boot.autoconfigure.flyway.FlywayPostgresAutoConfiguration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of contentgrid-spring-boot-autoconfigure Show documentation
Show all versions of contentgrid-spring-boot-autoconfigure Show documentation
Module with Spring Boot AutoConfiguration for ContentGrid applications
The newest version!
package com.contentgrid.spring.boot.autoconfigure.flyway;
import org.flywaydb.core.Flyway;
import org.flywaydb.database.postgresql.PostgreSQLConfigurationExtension;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
import org.springframework.boot.autoconfigure.flyway.FlywayConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
@AutoConfiguration
@AutoConfigureBefore(FlywayAutoConfiguration.class)
@ConditionalOnClass({Flyway.class, PostgreSQLConfigurationExtension.class})
public class FlywayPostgresAutoConfiguration {
/**
* The Flyway default of transactional lock enabled conflicts with 'CREATE INDEX CONCURRENTLY' migrations, so it should be disabled by default.
*
* @see Flyway documentation
*/
@Bean
FlywayConfigurationCustomizer postgresqlFlywayConfigurationCustomizerDisableTransactionalLock() {
return configuration -> {
configuration.getPluginRegister().getPlugin(PostgreSQLConfigurationExtension.class).setTransactionalLock(false);
};
}
}