【问题标题】:why liquibase append new changes to the exisiting content of diffChangelog?为什么 liquibase 将新的更改附加到 diffChangelog 的现有内容?
【发布时间】:2017-03-01 08:54:01
【问题描述】:

我正在使用 Liquibase Hibernate 扩展来针对我的数据库和我的模型生成 diffChangeLogFile。问题是当我使用 maven 运行它并且模型中有一些更改时,Liquibase 将生成的 ChangeSets 附加到旧的 diffChangeLogFile 内容中,所以我得到了很多重复的ChangSet,不是同一个id,而是同一个内容。 我知道更新不会有问题,因为 Liquibase 会跳过重复的更改集,但我希望每次运行 maven diff 目标时,Liquibase 都会删除 diffChangeLogFile 的旧内容并放入新内容。

【问题讨论】:

    标签: java database liquibase liquibase-hibernate


    【解决方案1】:

    这基本上就是 diff 命令的目的。如果要生成新的更改日志,则应使用 generateChangeLog 命令。

    【讨论】:

    • 另一个问题请教:当使用 Liquibase 和 java 时,如何在更新方法中传递 inputStream 或字符串而不是 changelogfile 路径?这可能吗?
    • 您可能需要编写自己的“集成”类才能做到这一点。我认为没有办法使用现有的集成(即命令行、maven 等)来做到这一点。此外,Liquibase 使用三个值识别变更集 - id、作者和路径。因此,如果您有两个“功能等效”但具有不同 id 的变更集,则部署它们时会遇到问题。
    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2012-07-20
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多