当系统尝试启动时,liquibase无法响应

时间:2019-02-21 13:59:01

标签: java spring liquibase

我正在尝试将liquibase集成到具有现有数据库(PostgreSQL)的现有项目中。

当我尝试启动系统时,没有看到liquibase尝试执行任何操作。

这是数据源bean:

<bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url.intguard}" />
        <property name="username" value="${jdbc.username.intguard}" />
        <property name="password" value="${jdbc.password.intguard}" />
    </bean>

LiquibaseCofing:

@ContextConfiguration
public class LiquibaseConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public SpringLiquibase liquibase() {
    SpringLiquibase liquibase = new SpringLiquibase();
    liquibase.setChangeLog("classpath:/database/changelog.xml");
    liquibase.setDataSource(dataSource);
    return liquibase;
    }

}

liquibase-changelog.xml:

<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

    <changeSet author="John" id="someUniqueId">
        <addColumn tableName="users">
            <column name="address" type="varchar(255)" />
        </addColumn>
    </changeSet>

</databaseChangeLog>

我知道系统启动时会调用LiquibaseConfig bean, 请帮助我了解我所缺少的, 谢谢。

1 个答案:

答案 0 :(得分:0)

我敢打赌,您需要使用SpringLiquibase.shouldRun(true)设置属性。

尝试调试方法SpringLiquibase#afterPropertiesSet()或至少尝试为包liquibase.integration.spring添加日志记录,以查看是否有关于调用的提及。