我正在尝试将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, 请帮助我了解我所缺少的, 谢谢。
答案 0 :(得分:0)
我敢打赌,您需要使用SpringLiquibase.shouldRun(true)
设置属性。
尝试调试方法SpringLiquibase#afterPropertiesSet()
或至少尝试为包liquibase.integration.spring
添加日志记录,以查看是否有关于调用的提及。