【问题标题】:liquibase returns false positive results for DiffChangeLogliquibase 返回 DiffChangeLog 的误报结果
【发布时间】:2020-05-13 09:25:48
【问题描述】:

我正在将 PostgreSQL 9.6 从本地迁移到 RDS Aurora PostgreSQL 11.4。

第一步,使用 pg_dump 导出数据库元数据(超过 700 个模式)。

接下来,想验证我没有遗漏任何约束、对象以及源和数据库是否对齐。

将 Liquibase 与 DiffChangeLog 结合使用会产生误报,例如:

  • 当源中存在约束时,从目标中删除它们。
  • 在源和目标中存在具有相同源代码的视图时创建视图。

这是用于单个模式的 Liquibase 命令。 我必须为数据库中的所有模式编写超过 700 个脚本:

c:\> liquibase.bat ^
--changeLogFile=d:\users\compare\changelog.postgresql.sql ^
--outputFile=d:\users\compare\Database_diff.txt ^
--classpath="D:\Program Files\liquibase\postgresql-42.2.12.jar" ^
--driver=org.postgresql.Driver ^
--url=jdbc:postgresql://<source_endpoint>:5432/<source_database> ^
--username=<source_username> ^
--password=<source_password> ^
--defaultSchemaName=<source_schema> ^
--includeSchema=true ^
DiffChangeLog ^
--referenceUrl=jdbc:postgresql://<target_endpoint>:5432/<target_databas> ^
--referenceUsername=<target_username> ^
--referencePassword=<target_password> ^
--referenceDefaultSchemaName=<target_schema>

请告知如何避免误报结果。

【问题讨论】:

  • 如果您已经在使用 Liquibase,那么为什么不将您的 Liquibase 更改日志应用到新服务器上呢?或者只是转储您当前的数据库并将其导入新数据库?
  • 我使用 pg_dump 并用这个转储创建了新数据库。我只想使用 Liquibase 验证在 pg_dump/pg_restore 过程中没有丢失任何内容。

标签: postgresql liquibase


【解决方案1】:

您也可以尝试翻转 url 和参考 url。 diffChangeLog 将使用referenceUrl 作为您希望数据库查看方式的参考或来源。并将使用 url 作为更改的目标。

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    相关资源
    最近更新 更多