使用 liquibase changelog 从 Hibernate 3.6.3 迁移到 4.3.10

Migrating from Hibernate 3.6.3 to 4.3.10 using liquibase changelog

在 Hibernate 3.6.3 和 4.3.10 之间,唯一键约束的命名模式发生了变化。我们正在使用 liquibase 来管理我们的数据库更改。

这要求我们像这样手动添加数百个约束更改:

<dropUniqueConstraint constraintName="attachednetworkdevicejpa_uuid_macaddress_vlan_key" tableName="attachednetworkdevicejpa"/>
<addUniqueConstraint columnNames="uuid, macaddress, vlan" constraintName="uk_2o0nn8nq8eoo40bpyyq5k9anh" deferrable="false" disabled="false" initiallyDeferred="false" tableName="attachednetworkdevicejpa"/>

我正在采用这个远远落后于 master 并且有大量必须添加的新约束的分支。是否有更好的方法来处理这个问题,或者这些是否都需要手动创建以支持此迁移?

我们最终通过编写 python 脚本来抓取基本更新日志和现有代码并在两者之间创建迁移更改来解决此问题。

项目可以在这里找到: https://github.com/JLLeitschuh/Hibernate-3-to-4-Liquibase-Changelog-Gen