Liquibase diff 更改集和数据库

问题描述 投票:0回答:2

我正在开发并对数据库进行了更改。在提交之前,我必须将更改添加到我的更改集中。所以我做了

liquibase --url="...;name=db_dev" diff
,但它要求我提供参考参数。但是我不想将 url 数据库与另一个数据库进行比较。我想将更改集(文件)与目标数据库进行比较。

这可能吗?

liquibase
2个回答
5
投票

我认为您可能以非标准方式使用 Liquibase。

一种预期的使用模式是,您通过编写 Liquibase“更改集”(采用 XML、JSON 或 Liquibase 结构化 SQL)来创建必要的架构更改,然后使用

liquibase update
将该更改部署到每个数据库实例。

第二种使用模式是使用您喜欢的任何数据库操作工具直接对数据库进行更改,然后使用

liquibase diffChangelog
将相应的更改集附加到更改日志文件中。进行更改集后,您必须使用
liquibase changelogsync
命令使用新更改集已“部署”到数据库的信息来填充数据库上的 Liquibase
DATABASECHANGELOG
表。第二种用法要求您:

  • 比较两个实时数据库(例如,您可以将“测试”或“暂存”数据库与您手动更改的数据库进行比较)
  • 在进行手动更改之前创建数据库“快照”,然后进行更改,然后将数据库与快照进行比较。 Liquibase 博客上的此页面介绍了如何使用
    liquibase snapshot
    命令拍摄快照,以及如何使用该快照作为“离线数据库”进行比较。

Liquibase 文档中的此页面提供了有关 Liquibase 入门时的使用模式的更多详细信息。


0
投票

你可以使用

liquibase status --verbose

https://docs.liquibase.com/commands/change-tracking/status.html

© www.soinside.com 2019 - 2024. All rights reserved.