有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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中,正如预期的那样,其中FILENAMEclasspath:/db/changelog/0.0.1/db.changelog.xml

当我执行一个liquibase rollbackCount 1时,响应是Liquibase Rollback Successful,但更改没有回滚

手动回滚更改(删除更改集创建的表)后,我执行liquibase update。更新成功,但是FILENAMEdb/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) 个答案