インフラ

【1.3.0 → 4.1.0.stable】Redmineのサーバー移行&バージョンアップグレード!

redmine-upgrade

こんばんは!光です。

大手グローバル企業でWebエンジニアをやっています。

Webエンジニアを目指してプログラミングを勉強している初心者の方向けに情報を発信しています。

経歴や実績はこちら

システム開発のお仕事の依頼もお待ちしております。

お問い合わせページTwitterのDMからお気軽にお問い合わせください!

今回はこのような質問をいただきました。

Redmineのバージョンをアップグレードしたい!

使用しているRedmineが非常に古かった(1.3.0)ので2020年1月時点の最新版(4.1.0.stable)へアップグレードを行いました。

動作中のRedmineをアップデートするのは環境の都合で難しかったので、別のサーバーへ移行してアップグレードすることにしました。

そこで今回はこちらの質問について解説していきます!

移行データの準備

まずは旧サーバからデータを抽出します。

私が抽出したのは以下の2つです。(他にも必要なものがあるかも)

  • データベースのダンプ
  • アップロードされたファイル

データベースのダンプ

使用しているデータベースに接続してダンプを取得してください。

接続情報はインストールディレクトリ内のconfig/database.ymlに記述されています。

環境によって違うと思うけどデフォルトだとここかも。
/opt/bitnami/apps/redmine/htdocs/config/database.yml

あとはmysqldumpコマンド等でダンプを取得してください。

アップロードされたファイル

アップロードされたファイルはインストールディレクトリ内のfilesに格納されています。

このディレクトリごとコピーしておきましょう。

ファイルサイズが非常に大きい場合があります。

新しいサーバーを立てる

今回はAWSのAMIを利用しました。

詳細はこちらの記事にまとめてあります。

すぐに構築できるのでおすすめです!

データベースの作成

ダンプファイルからデータベースを作成します。

ダンプファイルはコマンドで取り込むこともできるのですが、phpMyAdminが使えたので使うことにしました。

アクセスするまでの設定はこちらにまとめてあります。

大きく分けると以下のような手順で作成します。

  1. ダンプファイルから新たなデータベース(schema)を作成する
  2. rake db:migrateを実行する

ダンプファイルから新たなデータベースを作成する

デフォルトで生成されるデータベースがあるのですが、そちらは使用しません。

今回は新たにデータベースを作成します。

まずはrootアカウントでログインします。(パスワードに関しては先ほどの記事参照)

デフォルトのデータベースの変更、または削除

rootアカウントでログインすると「bitnami_redmine」というデータベースが存在するのがわかると思います。

こちらがデフォルトで生成されるデータベースです。

まずはこのデータベースの名前を変更しましょう。(同じ名前のデータベースを作成したいため)

画面左側のデータベース一覧から「bitnami_redmine」を選択し、「操作」タブから変更、または削除が行えます。

デフォルトのデータベースの変更、または削除

私は「bitnami_redmine_base」というデータベース名に変更しました。

使わないデータベースなので削除しても大丈夫です。

データベースを新規作成

画面左側のデータベース一覧に表示されている「新規作成」からデータベースを作成します。

データベース名は「bitnami_redmine」で文字コードはそのままで大丈夫です。

データのインポート

次に「インポート」からインポートします。

作成したデータベースが選択されていることを確認してください。

「インポート」タブから操作を行います。

ダンプファイルのインポート

sql形式で抽出していればそのまま取り込めました。

これで今まで動いていたRedmineのデータベースをコピーすることができました。

rake db:migrateを実行する

次にデータベースの構造を最新のものに合わせる必要があります。

そこでActive Recordのマイグレーションを使用します。

まずはRedmineのインストールディレクトリ(/opt/bitnami/apps/redmine/htdocs/)へ移動します。

その後、マイグレーションコマンドを実行します。

$ cd /opt/bitnami/apps/redmine/htdocs/
$ bundle exec rake db:migrate RAILS_ENV=production

これでデータベースが最新の状態になります。

ファイルの配置

旧サーバからバックアップを取ったファイル(アップロードされたファイル)をコピーします。

インストールディレクトリのfiles(/opt/bitnami/apps/redmine/htdocs/files)内にコピー or 置換するだけです。

これですべてのデータが移行できました。

今までと同じようにRedmineが利用できるはずです。

あとがき

このあと簡単な動作確認程度しか行っていないので、もしかしたら手順が足りていないかもしれません。

カスタムクエリでエラーが出るような話を聞いたけど、そこは作り直せば良いかも。

移行まで行わない場合はバージョンが古すぎると簡単にはアップデートできないみたいですね(Rubyのバージョンが原因?)…定期的にアップデートしたほうが良いかも。

GUIで簡単にアップデートできたらいいのになぁ。