From 3e13970fe036f7fdcb86cdb5061c049bb2f05141 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 25 Jul 2017 13:35:03 -0400 Subject: [PATCH] Use configured schema in Liquibase endpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit makes sure that the Liquibase endpoint uses the configured schema. See gh-98£62 --- .../actuate/endpoint/LiquibaseEndpoint.java | 5 +++++ .../endpoint/LiquibaseEndpointTests.java | 20 ++++++++++++++++--- .../test/resources/db/non-default-schema.sql | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 spring-boot-actuator/src/test/resources/db/non-default-schema.sql diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpoint.java index 9008bab7b0..773cb406f2 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpoint.java @@ -28,6 +28,7 @@ import liquibase.database.Database; import liquibase.database.DatabaseFactory; import liquibase.database.jvm.JdbcConnection; import liquibase.integration.spring.SpringLiquibase; +import liquibase.util.StringUtils; import org.springframework.boot.actuate.endpoint.LiquibaseEndpoint.LiquibaseReport; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -67,6 +68,10 @@ public class LiquibaseEndpoint extends AbstractEndpoint> { try { Database database = factory .findCorrectDatabaseImplementation(connection); + String defaultSchema = entry.getValue().getDefaultSchema(); + if (StringUtils.trimToNull(defaultSchema) != null) { + database.setDefaultSchemaName(defaultSchema); + } reports.add(new LiquibaseReport(entry.getKey(), service.queryDatabaseChangeLogTable(database))); } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpointTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpointTests.java index 2acabaca03..460605ac7c 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpointTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/LiquibaseEndpointTests.java @@ -18,9 +18,10 @@ package org.springframework.boot.actuate.endpoint; import liquibase.integration.spring.SpringLiquibase; import org.junit.Test; - -import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration; +import org.springframework.boot.test.util.TestPropertyValues; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -44,8 +45,21 @@ public class LiquibaseEndpointTests extends AbstractEndpointTests