@Bean
public SpringLiquibase liquibase() {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(vsDataSource());
liquibase.setChangeLog("classpath:liquibase/avt_changelog_master.xml");
return liquibase;
}
这是我通过spring boot应用程序初始化liquibase的方法。
我已经检查了databasechangelog表,我可以找到该变更集条目,并且已成功执行。
为什么liquibase不会跳过该变更集并执行新的唯一变更集ID。
答案 0 :(得分:3)
问题可能出在您的更改日志的名称上。如果您从其他application / maven / ...中执行了更改日志而您没有指定logicalFilePath
,那么liquibase可能会将其视为不同的更改日志。尝试在更改日志定义中设置logicalFilePath
,然后尝试执行它。
这是一个例子:
<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.5.xsd"
logicalFilePath="db-changelog-master.xml">