2012-01-20 4 views
1

私はH2/J2EE/Springアプリケーションで作業し、Flywayを使用して運用サーバー上の運用データベースを更新します。問題は、開発者H2の変更を生産H2とマージすること(すなわち、フライウェイデルタスクリプトを生成すること)が常に非常に複雑であることである。どのようにしてこれらのSQL変更を生成するための歴史的な方法ですべてのdb変更をトレースすることが可能ですか? (すべてのDB更新は管理フロントエンドで行われます)?デルタスクリプトとして更新の変更を生成します。

答えて

0

trace optionを使用し、ConvertTraceFileツールを使用してトレースファイルからSQLスクリプトを作成することができます。

+0

素晴らしい!しかし、この呼び出しの自動化はどうでしょうか? – Alec

+0

いいえ、残念ながら、トレースファイルの情報は本当に必要なものではありません。特に、すべての選択と、セッション中に起こっていること(モデルデータへのアクセス)を記録します...必要なのは、 CREATEなど)とデータの変更(INSERT、UPDATE、DELETE)が含まれます。とにかくありがとう!!! – Alec

0

誰もあなたに知識を共有しません - データベースデータとスキーマの変更を簡単に収集する方法

public void write(int level, String module, String s, Throwable t) { 
    ... 


      String s2 = s.toUpperCase(); 
      if (s2.indexOf("SELECT") != -1) { 
       return; // :) 
      } 

      writeFile(format2(s2), t); 

} 

は、今私は、少なくともつかむことができています:私の一時的な解決策は、彼らのSVNから(私のバージョン)H2をチェックアウトし、次のようにorg.h2.message.TraceSystemのJavaクラスを変更することでした原因:)変更:)(.trace.dbのConvertTraceFileを使用)

関連する問題