【问题标题】:Liquibase rollback to tagLiquibase 回滚到标签
【发布时间】:2016-11-19 02:39:05
【问题描述】:

我是 Liquibase 的新手,我正在尝试让回滚功能正常工作。我在 Windows 中运行 Liquibase。我执行了将数据库标记为 version_1.0 的安装。我运行了一个更新,将数据库标记为 version_1.1。现在我正在尝试回滚到 version_1.0

这是我正在运行的命令:

liquibase rollback version_1.0

这给出了一个需要 --changeLogFile 的错误,所以我运行了这个

liquibase --changeLogFile=v001/master.xml rollback version_1.0

我提供了在更新期间执行的更改日志文件的名称,但没有得到任何信息。更新包含 2 个创建表语句,并且未删除表。我在回滚过程中遗漏了什么?

【问题讨论】:

  • 如果您可以显示更改日志的内容、DATABASECHANGELOG 表的内容以及命令的任何输出,那将有所帮助。
  • 我调用了不正确的 changeLogFile。我能够看到将被回滚的更改并使用 rollbackSQL 命令调试问题
  • 为什么我需要提供该 changeLogFile 的名称?它不应该知道自 version_1.0 以来实现的所有更改以及与 DATABASECHANGELOG 表关联的 changeLogFiles 吗?
  • 当更改日志文件名保存到 DATABASECHANGELOG 表时,它被用作唯一标识符,而不是实际文件的路径。通常,它是您正在处理的某个“项目”的根目录的相对路径。当 Liquibase 在特定机器上运行时,它需要找到一个实际文件,这就是您在命令行中提供的内容。

标签: liquibase


【解决方案1】:

Liquibase 并没有真正标记数据库。它只标记知道哪些变更集需要回滚。

回滚将通过执行 changeling 中的回滚标签来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多