2012-01-20 91 views
1

我使用H2/J2EE/Spring應用程序,並使用Flyway在生產服務器上更新生產數據庫 - 一切正常。問題在於將開發者H2變更與生產H2合併(即生成飛行三角洲腳本)總是非常複雜。如何以任何方式跟蹤所有數據庫更改,以後續歷史方式生成這些SQL更改? (所有數據庫更新都使用管理員前端完成)?以增量腳本生成更新更改

回答

0

您可以使用trace option,然後使用ConvertTraceFile工具從跟蹤文件創建SQL腳本。

+0

太棒了!但是 - 這個調用的自動化怎麼樣? – Alec

+0

不幸的是,跟蹤文件中的信息並不是我真正需要的,特別是它記錄了所有選擇,以及會話期間發生的所有事情(訪問模型數據)......我需要的是實現所有模式更改(ALTER, CREATE等)和數據修改(INSERT,UPDATE,DELETE)。不過謝謝! – Alec

0

所以沒有人會分享你的知識 - 如何輕鬆地爲我收集數據庫數據和模式的變化? :)因爲我的臨時解決方案是從他們的SVN結帳H2(我的版本),並修改以下方式org.h2.message.TraceSystem java類:

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); 

} 

現在我至少能搶更改:)(與ConvertTraceFile爲.trace.db)