gpt4 book ai didi

liquibase - 如何使用 liquibase diffChangeLog 与当前更改日志作为引用(生成增量更改集)

转载 作者:行者123 更新时间:2023-12-04 02:29:33 25 4
gpt4 key购买 nike

我有一个现有的数据库并使用了 generateChangeLog command line创建初始变更日志。这工作正常:-)

但是现在我希望开发人员使用他们已经知道/使用的所有工具/流程来开发数据库和代码,并使用脚本来生成适当的增量更改集。

即:使用当前更改日志(属性文件中的 changeLogFile)作为基本引用,对开发人员数据库的当前状态(属性文件中的 url/用户名/密码)进行 diff。

似乎没有简单的方法可以做到这一点 - 我想出的最好的方法是:

  • 创建一个新的临时数据库。
  • 使用 liquibase 通过覆盖连接 url 来初始化临时数据库(到当前在更改日志中的内容):liquibase --url=jdbc:mysql://localhost:3306/tempbase update
  • 使用 liquibase 通过比较两个数据库在变更日志中生成变更集:liquibase --referenceUrl=jdbc:mysql://localhost:3306/tempbase --referenceUsername=foo --referencePassword=baz diffChangeLog
  • 删除临时数据库。
  • 同步变更集:liquibase changelogSync

  • 但必须有更好的方法......

    最佳答案

    liquibase 无法将变更日志文件与数据库进行比较是对的。唯一真正的选择是将您的开发人员数据库与实际的 liquibase 管理的数据库或至少一个临时创建的数据库进行比较。

    我建议的更好方法是首先考虑让开发人员编写 liquibase changeSets。它与他们可能习惯的工具不同,但它具有巨大的优势,他们知道他们想要进行的更改将使其一直到生产。任何基于 diff 的过程(例如使用 diffChangeLog)通常都会对更改的内容做出正确的猜测,但并非总是如此,而且这些差异通常在投入生产之前不会被注意到。

    Liquibase 具有多种功能,例如 formatted SQL changelogs旨在使开发人员从直接针对他们的数据库工作到通过 Liquibase 跟踪更改的过渡,因为一旦这种过渡完成,很多事情就会变得容易得多。

    关于liquibase - 如何使用 liquibase diffChangeLog 与当前更改日志作为引用(生成增量更改集),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002568/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com