【问题标题】:liquibase mark changeset applied已应用 liquibase 标记变更集
【发布时间】:2013-02-20 17:15:35
【问题描述】:

如何将特定变更集标记为在 liquibase maven 插件中应用?文档中对此一无所知,命令 ma​​rkNextChangeSetRan 似乎什么也没做。

【问题讨论】:

  • 您的问题是 Maven 插件特有的,还是一般的 liquibase 问题?如果是前者,您将如何从 CLI 中执行您想要的操作的示例将有助于澄清。
  • @jordan002 和maven有关

标签: maven liquibase


【解决方案1】:

这个问题有一个“hacky”的解决方案:

  1. 删除有问题的changeSet XML 元素的所有子元素。请记住将 changeSet 及其 id 和 author 参数留在 liquibase XML 文件中。
  2. 运行mvn liquibase:update
    • 应该说它运行了所需的特定changeSet
  3. 还原您修改的 XML 文件。
  4. 再次运行mvn liquibase:update
    • 您将获得Validation Failed: 1 change sets check sum 和新的金额。从错误中复制新的校验和。
  5. 将校验和手动粘贴到目标数据库DATABASECHANGELOG表的正确记录中。

【讨论】:

    【解决方案2】:

    查看当前主分支(当前为 3.0.0-beta2-SNAPSHOT)中的 sources,似乎根本没有实现 markNextChangeSetRan 命令。

    所以我猜,它根本不存在。

    您可以在liquibase JIRA 中添加一张票来请求这个,但似乎没有 maven 插件的项目(不知道是否在其他地方跟踪了 liquibase 的 maven 插件)。

    很抱歉没有更好的答案。我刚刚从github 自己检查了完整的 liquibase 代码以实现一个缺失的功能,所以我想我只是快速检查一下。

    【讨论】:

      【解决方案3】:

      您可以运行 mvn liquibase:changelogSyncSQL 生成一组 SQL 语句,将您的变更集标记为已应用。

      它将查询放入target/liquibase/migrate.sql。然后,您可以在数据库中手动执行这些 SQL 语句。

      https://b-gyula.github.io/liquibase-doc/documentation/existing_project

      【讨论】:

        猜你喜欢
        • 2018-10-21
        • 2019-01-14
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        • 1970-01-01
        • 2015-10-27
        • 2018-01-01
        • 2021-01-13
        相关资源
        最近更新 更多