H2のバージョンアップで、DBデータ形式に関する変更があった場合でもDBデータを自動的にバージョンアップしてくれません。jarを差し替える前にDBデータの移行作業が必要です。
移行作業というと仰々しいですが、リカバリの手順と同じです。バージョンアップ前にデータをSQLとして出力しておいて、バージョンアップ後にデータを再構築します。
リカバリのツールはjarに同梱されているのでクラス指定でコマンドラインより実行します。
DBファイルのあるディレクトリに移動したのち、このDBへの接続に使用しているバージョンのh2.jar
をクラスパスに指定して下記コマンドを実行します。
C:\h2db> java -cp C:\Tools\h2-1.4.195.jar org.h2.tools.Recover
SQLファイルが出力されていれば成功です。
出力されたSQLから新しいバージョンのDBを再構築するには、下記コマンドのようにします。
C:\h2db> java -cp C:\Tools\h2-1.4.196.jar org.h2.tools.RunScript -url jdbc:h2:C:/h2db/db/h2/play;MODE=MYSQL; -user sa2 -script play.h2.sql
-showResults
JDBC文字列を指定したり、sqlファイルを指定するのがポイントです。