H2 バージョン1.2.131がstableになったのでバージョンアップしたら・・・ [IT]
なんとなくChangeLog等から気配を感じてはいたのですが、H2って最近のバージョンでDBの内部構造を変更したんですね。
バージョン1.2.131がstableになっていたのでバージョンアップしたら、新しい形式のDBファイルでないと使えないようになっているらしく、以下に示す例外を吐かれました。
とりあえずDBファイルを新しい形式に変換する方法を調べましたので以下に示します。
(1)
バージョン1.2.127かそれ以前のjarファイルにCLASSPATHを通す。
(2)
「org.h2.tools.Script」コマンドを使ってバックアップを取る。
例:
データファイルが「/Users/marbee/h2/data/stock.data.db」の場合以下に示すコマンドを実行する。
(3)
「/Users/marbee/h2/data」フォルダをリネームするなりして退避する。
(4)
バージョン1.2.128かそれ以後のjarファイルにCLASSPATHを通す。
(5)
「org.h2.tools.RunScript」コマンドを使ってリストアする。
例:
以上でコンバートできました。
ただしできたファイルが「stock.h2.db」だけでした。
以前のバージョンでは「〜.index.db」とか別ファイルであったので「インデックスとかどうなったのかなぁ?」とか心配ですが、H2コンソールから見てみるとインデックスはあるようです。
ファイル名に「data」って付いていない所から推測するに、きっとファイルが統合されたのでしょう。
とりあえずバージョン1.2.131のjarで動作するようです。
でも、「インデックスは作り直した方が良いかも?」とか疑問・・・
今度時間がある時に試行錯誤してみます。
私同様stableのバージョンを追いかけている人のために、まずはコンバート方法のご紹介という事で・・・
バージョン1.2.131がstableになっていたのでバージョンアップしたら、新しい形式のDBファイルでないと使えないようになっているらしく、以下に示す例外を吐かれました。
16:23:46,963 WARN SettingsFactory:117 - Could not obtain connection metadata org.h2.jdbc.JdbcSQLException: ファイル "Old database: /Users/marbee/h2/data/stock.data.db - please convert the database to a SQL script and re-create it." は、未サポートのバージョンか、不正なファイルヘッダを持つデータベースファイルです
Unsupported database file version or invalid file header in file "Old database: /Users/marbee/h2/data/stock.data.db - please convert the database to a SQL script and re-create it." [90048-131]
とりあえずDBファイルを新しい形式に変換する方法を調べましたので以下に示します。
(1)
バージョン1.2.127かそれ以前のjarファイルにCLASSPATHを通す。
(2)
「org.h2.tools.Script」コマンドを使ってバックアップを取る。
例:
データファイルが「/Users/marbee/h2/data/stock.data.db」の場合以下に示すコマンドを実行する。
java org.h2.tools.Script -url jdbc:h2:file:/Users/marbee/h2/data/stock -user sa -password sa -script test.zip -options compression zip
(3)
「/Users/marbee/h2/data」フォルダをリネームするなりして退避する。
(4)
バージョン1.2.128かそれ以後のjarファイルにCLASSPATHを通す。
(5)
「org.h2.tools.RunScript」コマンドを使ってリストアする。
例:
java org.h2.tools.RunScript -url jdbc:h2:file:/Users/marbee/h2/data/stock -user sa -password sa -script test.zip -options compression zip
以上でコンバートできました。
ただしできたファイルが「stock.h2.db」だけでした。
以前のバージョンでは「〜.index.db」とか別ファイルであったので「インデックスとかどうなったのかなぁ?」とか心配ですが、H2コンソールから見てみるとインデックスはあるようです。
ファイル名に「data」って付いていない所から推測するに、きっとファイルが統合されたのでしょう。
とりあえずバージョン1.2.131のjarで動作するようです。
でも、「インデックスは作り直した方が良いかも?」とか疑問・・・
今度時間がある時に試行錯誤してみます。
私同様stableのバージョンを追いかけている人のために、まずはコンバート方法のご紹介という事で・・・
コメント 0