私は、Liquibaseバージョン3.5.3を使用してPL/SQL(Oracle 11gデータベース)を実行する必要がある "フォーマット済みのsql"liquibaseは、Oracle PL/SQLを可能にする複数行のロールバック文を含むsqlファイルです。
チェンジセットはこれを可能にするために "endDelimiter:/"オプションを使用します。
は、SQL フォーマットさ--liquibase --changesetマイク:51.9 endDelimiter:/ /* - '/変更がFIN_PLANSのトリガーを作成' - */ HIST_PKG.TRIG_HIST_TAB( 'FIN_PLANS')をBEGIN; END; /
このチェンジセットのロールバックでは同様にPL/SQLを実行する必要がありますが、多数の検索にもかかわらず、これを行う方法が見つかりません。 複数のロールバック文を指定しようとしましたが、各ロールバック行は個別に(「SQL文」のように)実行され、PL/SQLの「ブロック」であることを認識させる方法はわかりません。
ロールバックでendDelimitorオプションを試しましたが、認識されませんでした。 私は、チェンジセットのendDelimitorオプションもロールバックに適用されると仮定してみましたが、何もありません。
私が欲しいのは
--liquibase formatted sql
--changeset mike:51.9 endDelimiter:/
/* -- 'Create/Modify triggers for FIN_PLANS' -- */
BEGIN
HIST_PKG.TRIG_HIST_TAB('FIN_PLANS');
END;
/
--rollback endDelimiter:/
--rollback BEGIN
--rollback HIST_PKG.TRIG_HIST_TAB('FIN_PLANS');
--rollback END;
--rollback/
私の検索が http://forum.liquibase.org/topic/issue-with-pl-sql-and-rollbacks 上がっている...のようなものである。しかし、この解決策は、 "形式のXML"(ない "形式のSQL")を使用しています。 また、https://liquibase.jira.com/browse/CORE-1608が作成されましたが、これは終了しました。これは、「format xml」で行うこともできます。
PL/SQLコードの呼び出しをサポートする "formated sql"ファイルにliquibaseロールバックを書くことは可能ですか?