Remove liquibase check change log location

Missing change logs would lead to an exception even
if the checkChangeLogLocation was set to false. Spring Boot's check
would pass but Liquibase would fail later making this property redundant.

Fixes gh-16232
pull/17807/head
Madhura Bhave 5 years ago
parent eb26492eef
commit faaada1416

@ -18,7 +18,6 @@ package org.springframework.boot.autoconfigure.liquibase;
import java.util.function.Supplier;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
@ -43,13 +42,11 @@ import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
import org.springframework.orm.jpa.AbstractEntityManagerFactoryBean;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.util.Assert;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Liquibase.
@ -103,15 +100,6 @@ public class LiquibaseAutoConfiguration {
this.liquibaseDataSource = liquibaseDataSource.getIfAvailable();
}
@PostConstruct
public void checkChangelogExists() {
if (this.properties.isCheckChangeLogLocation()) {
Resource resource = this.resourceLoader.getResource(this.properties.getChangeLog());
Assert.state(resource.exists(), () -> "Cannot find changelog location: " + resource
+ " (please add changelog or check your Liquibase " + "configuration)");
}
}
@Bean
public SpringLiquibase liquibase() {
SpringLiquibase liquibase = createSpringLiquibase();

@ -38,11 +38,6 @@ public class LiquibaseProperties {
*/
private String changeLog = "classpath:/db/changelog/db.changelog-master.yaml";
/**
* Whether to check that the change log location exists.
*/
private boolean checkChangeLogLocation = true;
/**
* Comma-separated list of runtime contexts to use.
*/
@ -128,14 +123,6 @@ public class LiquibaseProperties {
this.changeLog = changeLog;
}
public boolean isCheckChangeLogLocation() {
return this.checkChangeLogLocation;
}
public void setCheckChangeLogLocation(boolean checkChangeLogLocation) {
this.checkChangeLogLocation = checkChangeLogLocation;
}
public String getContexts() {
return this.contexts;
}

@ -976,7 +976,7 @@
"description": "Check the change log location exists.",
"defaultValue": true,
"deprecation": {
"replacement": "spring.liquibase.check-change-log-location",
"reason": "Liquibase has it's own check that checks if the change log location exists making this property redundant.",
"level": "error"
}
},
@ -1875,6 +1875,16 @@
"level": "error"
}
},
{
"name": "spring.liquibase.check-change-log-location",
"type": "java.lang.Boolean",
"description": "Check the change log location exists.",
"defaultValue": true,
"deprecation": {
"reason": "Liquibase has it's own check that checks if the change log location exists making this property redundant.",
"level": "error"
}
},
{
"name": "spring.messages.cache-seconds",
"type": "java.lang.Integer",

@ -592,7 +592,6 @@ content into your application. Rather, pick only the properties that you need.
# LIQUIBASE ({sc-spring-boot-autoconfigure}/liquibase/LiquibaseProperties.{sc-ext}[LiquibaseProperties])
spring.liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml # Change log configuration path.
spring.liquibase.check-change-log-location=true # Whether to check that the change log location exists.
spring.liquibase.contexts= # Comma-separated list of runtime contexts to use.
spring.liquibase.database-change-log-lock-table=DATABASECHANGELOGLOCK # Name of table to use for tracking concurrent Liquibase usage.
spring.liquibase.database-change-log-table=DATABASECHANGELOG # Name of table to use for tracking change history.

Loading…
Cancel
Save