使用Liquibase创建数据库升级差异

时间:2015-09-30 13:28:46

标签: java database liquibase

我有两个数据库模式文件,它们都是空的。让我们说db.v1.sql和db.v2.sql中有数据库模式的版本1和版本2。

我想创建一个diff,它将使用模式db.v1.sql将数据库更新为db.v2.sql。

Liquibase能够做到吗? 还有其他工具可以从Java中完成吗?

1 个答案:

答案 0 :(得分:2)

是的,这可以使用Liquibase。

  1. 创建一个changelog.xml文件,该文件将.sql文件列为单独的更改集。将此文件视为' tempChangeLog.xml'在此文件中,使用" v1"为每个更改集添加标签属性。或" v2"。
  2. 使用liquibase update将第一个标签应用于第一个数据库实例。
  3. 使用liquibase generateChangelog来"转换" sql to liquibase xml changesets。这将是你的realChangeLog.xml'
  4. 修改' realChangeLog.xml以添加" v1"标签属性到所有变更集。
  5. liquibase update与' tempChangeLog.xml'一起使用将第二个标签应用于第二个数据库实例。
  6. 使用liquibase diffChangelog命令将数据库实例1与数据库实例2进行比较,将更改附加到' realChangeLog.xml'
  7. 修改' realChangeLog.xml'再次添加" v2"所有新变更集的标签。
  8. 您现在将拥有一个changelog.xml,可用于将数据库更新为v1或v2。

    将新的更改与您的ORM同步是一项单独的练习。