0

我最初为 PostreSQL 定义了我的 liquibase 架构。现在,我必须修改架构文件以支持 Oracle。我有一个带有<sql>标签的变更集。它有一个查询访问pg_catalog表以设置序列的值。但是,这不适用于 Oracle。如果我删除它,Liquibase 会抱怨校验和验证失败。即使我有一个空<sql>标签或其中指定了一些其他查询,它也会抱怨。在这个变更集中,我有许多其他的 create-table 语句,所以我不能只从 dbms 属性中删除 oracle。有什么办法可以禁止此 sql 为 Oracle 运行?

4

1 回答 1

1

变更集上的 dbms 属性是旨在处理此问题的机制.....听起来您试图在一个变更集中做太多事情(但我想您已经弄清楚了)

校验和验证失败是 liquibase 的安全机制,旨在保护数据库免受有人篡改模式文件的影响。

解决方法是在运行 liquibase 时使用clearChecksums选项。它告诉 liquibase 重新计算数据库中已有变更集的校验和。这将使您的 postgres 数据库实例能够接受您为 Oracle 所做的更改集的更改。

于 2012-07-16T21:22:36.263 回答