2017-11-29 7 views
0

私は、主DBとしてpostgresqlを、テスト用にメモリ内DBとしてH2を使用した春のブートプロジェクトを持っています。いくつかのカスタムロジックを実行するためにPL/pgSQLプロシージャを追加しましたが、今ではテストが動作しなくなります。どのようにliquibaseのユーザーは通常そのようなケースを解決する?単一プロジェクト用のLiquibase DB固有のスクリプト

私の手順は次のとおりです。

CREATE OR REPLACE FUNCTION <name>() RETURNS trigger AS' 
      BEGIN 
       DELETE FROM gator_device 
       WHERE id = OLD.... 
       RETURN NULL ; 
      END;' 
      LANGUAGE plpgsql; 

      CREATE TRIGGER <name> 
      AFTER DELETE ON <name> 
      FOR EACH ROW EXECUTE PROCEDURE <name>(); 
+1

'dbms =" postgresql "で関数を作成するchangeSetをマークします。" –

+0

それはどういう意味ですか? – asdasdsdf

+0

http://www.liquibase.org/documentation/changeset.html#available-attributes –

答えて

1

あなたの質問にコメントで述べたように、あなたは属性dbms="postgresql"で関数を作成チェンジをマークする必要があります。 Liquibaseは、データベースに適用するチェンジセットを決定するとき、そのチェンジセットが特定のデータベースタイプに対してのみ機能する場合、チェンジセットをスキップできます。完全にクロスプラットフォームになるためには、サポートしたい各データベースで動作する「同等の」チェンジセットを作成し、各チェンジセットがサポートするdbmsでそれらをマークする必要があります。

関連する問題