我不认为生成的 id 是个好主意。原因是liquibase使用changeSet id来计算校验和(除了作者和文件名)。因此,如果您在其他更改集之间插入更改集,则所有后续更改集的校验和都会更改,并且您将收到大量警告/错误。
无论如何,如果您仍然想生成 Id,我可以想到这些解决方案:
如果您自己解析 ChangeLog,则可以根据需要随意生成 id。缺点是您必须为变更日志提供自定义 Xml 架构。Liquibase 的架构对changeSet id 有限制(必需)。使用新模式,您可能需要对解析器进行大量调整。或者,您可以选择其他更改日志格式(YAML、JSON、Groovy)。他们的解析器可能更容易定制,因为他们不需要该模式定义。
您可以编写一个简单的 xslt(Xml 转换),该 xslt(Xml 转换)可以从没有任何内容的文件生成带有changeSet id 的changeLog。
这是我的建议。它没有按照您提出的方式解决问题,但它简单、一致,提供了附加信息,并且对于其他数据库迁移工具也是一个很好的实践http://www.jeremyjarrell.com/using-flyway-db-with -分布式版本控制/
| 归档时间: |
|
| 查看次数: |
13791 次 |
| 最近记录: |