Oracle 我怎样才能找到,为什么带有先决条件的Liquibase迁移是MARK_运行的而不是执行的?

Oracle 我怎样才能找到,为什么带有先决条件的Liquibase迁移是MARK_运行的而不是执行的?,oracle,liquibase,oracle12c,preconditions,Oracle,Liquibase,Oracle12c,Preconditions,我遇到了liquibase变更集的问题。变更集是这样的: <changeSet id="recreate-cool-dbobject" author="WTF"> <preConditions onFail="MARK_RAN"> <tableExists tableName="table_a" /> <tableExists tableName="table_b" /> <tableExists tableNam

我遇到了liquibase变更集的问题。变更集是这样的:

<changeSet id="recreate-cool-dbobject" author="WTF">
  <preConditions onFail="MARK_RAN">
    <tableExists tableName="table_a" />
    <tableExists tableName="table_b" />
    <tableExists tableName="table_c" />
  </preConditions>
  <comment>…should be executed if Feature X is available</comment>

  <sqlFile
    path="resources/view-definition-v2.sql"
    relativeToChangelogFile="true"
    dbms="oracle"
    stripComments="false"
    endDelimiter="-- /"
  />

  <rollback>
    <sqlFile
      path="resources/view-definition-v1.sql"
      relativeToChangelogFile="true"
      dbms="oracle"
      stripComments="false"
      endDelimiter="-- /"
    />
  </rollback>

</changeSet>
view-definition-v2.SQL
文件中的SQL有点像

CREATE OR REPLACE VIEW view_tab_abc
(
  col_a
, col_b
, col_c
, CREATED_AT
, UPDATED_AT
) AS
SELECT a.id AS col_a
     , b.id AS col_b
     , c.id AS col_c
     , a.created_at AS CREATED_AT
     , a.updated_at AS UPDATED_AT
  FROM tab_a a
  JOIN tab_b b on b.id=a.tab_b_id
  JOIN tab_c c on c.id=b.tab_c_id
WITH READ ONLY
CREATE OR REPLACE VIEW view_tab_abc
(
  col_a
, col_b
, col_c
, CREATED_AT
, UPDATED_AT
) AS
SELECT a.id         AS col_a
     , a.tab_b_id   AS col_b
     , a.tab_c_id   AS col_c
     , a.created_at AS CREATED_AT
     , a.updated_at AS UPDATED_AT
  FROM tab_a a
WITH READ ONLY
我已经试过
tableName=“table_a”
tableName=“table_a”
,但还是感觉根本不起作用。我还有其他几个变更集没有显示这个问题。有人有什么线索吗

使用的Liquibase版本为3.4.2,数据库为Oracle 12cR1 StandardEdition1

谢谢你的提示和问候,
B

一种可能是它没有为您的表寻找正确的模式。尝试更改先决条件以获得以下内容:

<tableExists schemaName="my_schema" tableName="table_a" />

对于每一张支票

另一件事是,如果您使用的是
liquibase
命令,那么使用
updateSQL
参数保存生成的SQL并运行它总是值得的。这样,您可以确保运行的SQL与Liquibase运行的SQL相同