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>
私はそれを絶対に知っており、table_a
存在します...しかし、それでも常に実行され、リンクされたファイル内のSQLが有効かどうかを何度か確認しました。そのSQLを直接発行すると、文句なしに実行されます。table_b
table_c
view-definition-v1.sql
ファイル内のSQLview-definition-v1.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
ファイル内のSQLview-definition-v2.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
, 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