use of liquibase.integration.spring.SpringLiquibase in project spring-boot by spring-projects.
the class LiquibaseAutoConfigurationTests method testOverrideDropFirst.
@Test
public void testOverrideDropFirst() throws Exception {
EnvironmentTestUtils.addEnvironment(this.context, "liquibase.drop-first:true");
this.context.register(EmbeddedDataSourceConfiguration.class, LiquibaseAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
SpringLiquibase liquibase = this.context.getBean(SpringLiquibase.class);
assertThat(liquibase.isDropFirst()).isTrue();
}
use of liquibase.integration.spring.SpringLiquibase in project spring-boot by spring-projects.
the class LiquibaseEndpoint method invoke.
@Override
public List<LiquibaseReport> invoke() {
List<LiquibaseReport> reports = new ArrayList<>();
DatabaseFactory factory = DatabaseFactory.getInstance();
StandardChangeLogHistoryService service = new StandardChangeLogHistoryService();
for (Map.Entry<String, SpringLiquibase> entry : this.liquibases.entrySet()) {
try {
DataSource dataSource = entry.getValue().getDataSource();
JdbcConnection connection = new JdbcConnection(dataSource.getConnection());
try {
Database database = factory.findCorrectDatabaseImplementation(connection);
reports.add(new LiquibaseReport(entry.getKey(), service.queryDatabaseChangeLogTable(database)));
} finally {
connection.close();
}
} catch (Exception ex) {
throw new IllegalStateException("Unable to get Liquibase changelog", ex);
}
}
return reports;
}
use of liquibase.integration.spring.SpringLiquibase in project spring-boot by spring-projects.
the class LiquibaseAutoConfigurationTests method testOverrideDataSource.
@Test
public void testOverrideDataSource() throws Exception {
EnvironmentTestUtils.addEnvironment(this.context, "liquibase.url:jdbc:hsqldb:mem:liquibase", "liquibase.user:sa");
this.context.register(EmbeddedDataSourceConfiguration.class, LiquibaseAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
SpringLiquibase liquibase = this.context.getBean(SpringLiquibase.class);
assertThat(liquibase.getDataSource().getConnection().getMetaData().getURL()).isEqualTo("jdbc:hsqldb:mem:liquibase");
}
use of liquibase.integration.spring.SpringLiquibase in project spring-boot by spring-projects.
the class LiquibaseAutoConfigurationTests method testXmlChangeLog.
@Test
public void testXmlChangeLog() throws Exception {
EnvironmentTestUtils.addEnvironment(this.context, "liquibase.change-log:classpath:/db/changelog/db.changelog-override.xml");
this.context.register(EmbeddedDataSourceConfiguration.class, LiquibaseAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
SpringLiquibase liquibase = this.context.getBean(SpringLiquibase.class);
assertThat(liquibase.getChangeLog()).isEqualTo("classpath:/db/changelog/db.changelog-override.xml");
}
use of liquibase.integration.spring.SpringLiquibase in project spring-boot by spring-projects.
the class LiquibaseAutoConfigurationTests method testRollbackFile.
@Test
public void testRollbackFile() throws Exception {
File file = this.temp.newFile("rollback-file.sql");
EnvironmentTestUtils.addEnvironment(this.context, "liquibase.rollbackFile:" + file.getAbsolutePath());
this.context.register(EmbeddedDataSourceConfiguration.class, LiquibaseAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
SpringLiquibase liquibase = this.context.getBean(SpringLiquibase.class);
File actualFile = (File) ReflectionTestUtils.getField(liquibase, "rollbackFile");
assertThat(actualFile).isEqualTo(file).exists();
String content = new String(FileCopyUtils.copyToByteArray(file));
assertThat(content).contains("DROP TABLE PUBLIC.customer;");
}
Aggregations