Play2.0データベース進化スクリプトでPostgreSQLトリガーを作成しようとしています。SQLコードは比較的簡単で、pgAdminIIIで正常に実行されます。
CREATE OR REPLACE FUNCTION update_modified() RETURNS TRIGGER AS $$
BEGIN
NEW.modified = now();
RETURN NEW;
END;
$$ LANGUAGE 'plpgsql';
ただし、evolutionを実行するとエラーが発生しますERROR: unterminated dollar-quoted
string at or near "$$ BEGIN NEW.modified = now()"
。SQLコードは、関数で最初に検出されたセミコロンで切り捨てられるようです。PostgreSQL用の「9.1-901.jdbc4」JDBCドライバーを使用しています。
アップデート:
Evolutions.scalaのコード(219行目以降)は、で単純な分割を実行し;
ます。フレームワーク自体に欠陥があるようです:
// Execute script
s.sql.split(";").map(_.trim).foreach {
case "" =>
case statement => execute(statement)
}
解決策はありますか?