java如何使用类路径通过Liquibase回滚数据库更改
我的应用程序正在使用Liquibase来管理数据库更改。它像这样建立了Liquibase:
@Bean(name = "liquibase")
public SpringLiquibase liquibaseData() {
final SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(dataSource);
liquibase.setChangeLog("classpath:/db/changelog/db.changelog-master.xml");
return liquibase;
}
它目前只有一个变更集。当通过运行应用程序应用变更集时,一条记录被插入到DATABASECHANGELOG
中,正如预期的那样,其中FILENAME
为classpath:/db/changelog/0.0.1/db.changelog.xml
当我执行一个liquibase rollbackCount 1
时,响应是Liquibase Rollback Successful
,但更改没有回滚
手动回滚更改(删除更改集创建的表)后,我执行liquibase update
。更新成功,但是FILENAME
是db/changelog/0.0.1/db.changelog.xml
。我执行一个liquibase rollbackCount 1
,然后按预期回滚更改
这是我的liquibase.properties
:
driver: oracle.jdbc.driver.OracleDriver
classpath: ../../../../../client-ui/build/libs/client-ui.war
url: jdbc:oracle:thin:@localhost:1521/orcl
username: the-username
password: the-password
changeLogFile: classpath:/db/changelog/db.changelog-master.xml
问题的症结似乎在于FILENAME
由应用程序和命令行应用变更集时是不同的。如何配置命令行参数,使其创建一个DATABASECHANGELOG
记录,其FILENAME
与应用程序创建的记录相同
共 (0) 个答案