Liquibase 关于 Oracle 12c 中 SYS.DBA_RECYCLEBIN 的警告

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

我最初的更改集是:

<changeSet id="1.2.0-01" author="Arya">
    <createIndex tableName="org_message" indexName="ix_org_message_userid_peerid">
        <column name="user_id"/>
        <column name="peer_id"/>
    </createIndex>
</changeSet>

执行成功,没有任何警告。

然后我从

1.2.0-01
表中删除了已执行的
DATABASECHANGELOG
记录(注意:创建的索引仍然存在),并向变更集添加了
indexExists
前提条件:

<changeSet id="1.2.0-01" author="Arya">
    <preConditions onFail="MARK_RAN">
        <not>
            <indexExists indexName="ix_org_message_userid_peerid"/>
        </not>
    </preConditions>
    <createIndex tableName="org_message" indexName="ix_org_message_userid_peerid">
        <column name="user_id"/>
        <column name="peer_id"/>
    </createIndex>
</changeSet>

在执行中,我看到了这个日志:

JdbcDatabaseSnapshot$CachingDatabaseMetaData -|液体碱需要 访问 DBA_RECYCLEBIN 表,以便我们可以自动处理 删除和恢复约束的情况。由于 Oracle 没有 正确恢复引用的原始表名 约束,我们使用 DBA_RECYCLEBIN 中的信息来 自动纠正此问题。

您用来连接数据库的用户(ORG_PLATFORM)需要 在我们可以之前设置“SELECT ON SYS.DBA_RECYCLEBIN”权限 执行此操作。请运行以下 SQL 来设置 适当的权限,然后尝试再次运行该命令。

 GRANT SELECT ON SYS.DBA_RECYCLEBIN TO ORG_PLATFORM;

但是更改集已成功执行:带有“MARK_RAN”的

1.2.0-01
记录已添加到
DATABASECHANGELOG
表中。

此警告是应该修复的重要问题还是只是默认日志记录(如 CORE-2940 问题中提到的)?我正在使用 liquibae

3.8.9
和 oracle
12c

java oracle liquibase
2个回答
1
投票

这是一个您可以忽略的警告。您可以使用以下属性禁用警告:

liquibase.oracle.ignoreRecycleBin=true

0
投票

没有让它工作,检查了最新的liquibase,看起来应该是:

liquibase.ignoreRecycleBinWarning=true

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