从sql生成liquibase 2.x changeset

时间:2014-06-05 23:24:41

标签: liquibase

我正在使用liquibase 2.x(暂时还不能升级),并希望从SQL文件生成我的migrations.xml。有sql标签让我可以定位dbs,但这似乎只有3.x.

我目前正在使用h2和liquibase.diff.Diff执行此操作,但它在生成changeSet(VARCHAR(2147483647)在德比中吓坏了)时遇到了问题。通过将SQL加载到h2然后Diffing为PoststgreSQL创建changeSet,我感觉不对。有没有办法让我生成我的migrations.xml文件而不会出现差异?

我也可以为不同的DB生成不同的changeSet,只要它在同一个migration.xml

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

我认为还有另一种方法可以生成差异变更集文件。您必须创建数据库,让liquibase运行diff以生成基本更改日志文件,然后手动重做。

这就是我们所做的。返工包括:

  • 将作者标记更改为真实用户名
  • 将id属性更改为自枚举值
  • 通过BIT更改类型BOOLEAN(我们从mysql生成了diff,但也希望将它放在oracle上,而BIT不是有效类型)
  • 删除生成的模式名称(以保持模式变量)
  • 通过更好的名称
  • 重命名约束的ID(在开发期间先前生成的休眠)
  • 仅在数据库支持序列的情况下使用序列。否则使用简单的表格。

这些只是我们所做的事情的例子。但我想你不会绕过手册部分。