3.10にしたらgitbucketが壊れた!
何も考えずにGitbucketを3.5から3.10にアップデートしたところ、データベースがぶっこわれてしまいました。
org.h2.jdbc.JdbcSQLException: Table "ACTIVITY" not found; SQL statement:
(うんたらかんたら)
- ログインできない
- エラーメッセージしか表示されない
どうやら3.10からH2 Databaseがバージョンアップしたことが原因とのこと。作者がデータベースのマイグレーションツールを提供してくれているのを発見した。
GitBucket 3.10をリリースしました - たけぞう瀕死ブログ
データストアの信頼性向上のため、GitBucketが内部で使用しているH2データベースを最新版である1.4.190にバージョンアップしました。
しかし、H2のバージョンアップはデータファイルの互換性に関する問題を引き起こす可能性があります。もし、H2のバージョンアップに起因する問題が発生した場合はマイグレーションツールを使用してデータファイルのマイグレーションを行うか、3.10の代わりに3.10_h2-1.4.180(これはH2のバージョンを除いて3.10と完全に同じものです)を使用してください。
gitbucket/h2-migration - Shell
In GitBucket 3.10, we upgraded H2 to the recent version of H2 1.4.190. However it might cause a compatibility problem for data files.
悲しいお知らせ
Note: This tool migrate from old data files to new data files but GitBucket 3.10 might break old data files in bootstrap. So you must backup data files (~/.gitbucket/data.*.db) before upgrading to GitBucket 3.10 and restore from old data files before running this tool.
(太字部筆者)
(超訳)「マイグレーションツールは用意したけど、3.10動かしたらデータベースぶっこわれてるっぽいから、古いデータに戻してからマイグレーションかけてね〜」
仕方がないので、壊れる直前のバックアップからデータを復旧してマイグレーションを実行。
ツールはREADMEの手順通り、自分の環境に合わせて環境変数を書き換えてから実行すればOK。
無事3.10で起動した。
(シェルスクリプト実行時に一部のファイルが存在しないと言われたが、特に問題はなかった。)
教訓
ソフトのアップデート前には必ずバックアップを取ろう!