我有一个现有的数据库,并使用generateChangeLog命令行来创建初始更改日志.这很好用:-)
但现在我希望开发人员使用他们已知/已经使用的所有工具/流程来开发数据库和代码,并使用脚本生成任何适当的增量更改集.
即:使用当前更改日志(属性文件中的changeLogFile)作为基本引用,对开发人员数据库的当前状态(属性文件中的url/username/password)执行diff.
似乎没有简单的方法可以做到这一点 - 我提出的最好的方法是:
liquibase --url=jdbc:mysql://localhost:3306/tempbase updateliquibase --referenceUrl=jdbc:mysql://localhost:3306/tempbase --referenceUsername=foo --referencePassword=baz diffChangeLogliquibase changelogSync但必须有更好的方法......
你是对的,liquibase 无法将变更日志文件与数据库进行比较。唯一真正的选择是将您的开发人员数据库与实际的 liquibase 管理的数据库或至少一个临时创建的数据库进行比较。
我建议更好的方法是首先考虑将开发人员转移到编写 liquibase 变更集。它与他们可能习惯的工具不同,但它有一个巨大的优势,那就是他们知道他们想要做出的改变将使其一路投入生产。任何基于 diff 的流程(例如使用 diffChangeLog)通常都会正确猜测更改的内容,但并非总是如此,并且这些差异通常在投入生产之前不会被注意到。
Liquibase 具有各种功能,例如格式化的 SQL 更改日志,旨在使开发人员从直接针对数据库工作过渡到通过 Liquibase 跟踪更改,因为一旦实现这种过渡,许多事情就会变得容易得多。
| 归档时间: |
|
| 查看次数: |
3410 次 |
| 最近记录: |