概要
Bitnami Redmineの3.4.6-xから4.1.1-xへのバージョンアップ検証です。
主にDBデータのマイグレーションと、添付ファイルのコピー方法です。
必要か?と思われそうな手順も一つ一つ貼っていますが、ご容赦ください。
総論
Windowsサーバではファイルのコピペができたりするのと、Bitnami Redmineのインストーラや移行ツールが賢いこともあり、
基本的なコンポーネント構成さえ理解していれば、おおむね困ることなく作業することができました。
投稿の背景
- なんとなくイメージはついているが、実際やってみないと分からない
- 公式手順はLinux/Mac版がメイン
- なのでWindows版への手順読替
- および画面イメージ付与
- 構成について自分なりに理解できた点の情報整理
検証ポイント(私が調べたいこと)
- DBデータ周り
- ユーザ情報は移行できるのか?
- チケットデータは移行できるのか?
- カスタムフィールドは移行できるのか?
- 物理ファイル周り
- 添付ファイルは移行できるのか?
環境情報
- 1つサーバ上に2面の新旧Bitnami-Redmineを設置し、データ移行します。
- OSはWindowsServer2016です(実験ではAWSでEC2を使い捨てするのが便利でした)。
- Redmine
Redmineについて(URLリンク集)
インストーラーのリンク
参考にさせていただいたサイト
-
公式サイト
- バージョンアップはアップグレードと表現するのですね。
-
Windows で Bitnami Redmine Stack を用い,1つの Apache サーバーで複数の Redmine を立ち上げる
- Redmineの基本的な構成とマネジャーの使い方と基盤設定変更について理解することができました
-
メモ:Bitnami Redmine にプラグインをインストール
- Linux版ですが、PATHの通し方のヒントを得ました
全体的な検証の流れ
- 旧バージョンのインストール
- 旧バージョンでの検証用準備
- プロジェクト作成
- ユーザ作成
- カスタムフィールド追加
- チケット作成
- ファイル添付
- 新バージョンのインストール
- マイグレーション(基本的には公式サイトの手順通りに進めます)
- データ移行
- ファイル移行
- 新バージョンでの確認
まずは、旧バージョンのインストール
動作確認
次に、旧バージョンでの検証用準備
- プロジェクト作成
- Bitnamiバージョンアッププロジェクトとし、説明だけ記載
- ユーザ作成
- tesuserのテスト太郎さんを作成
- ついでに、testgroupに含めて作成したプロジェクトに紐づけ
- カスタムフィールド追加
- ドロップダウンリスト
- ロングテキストエリア
- チケット作成
- 入力項目には日本語を混ぜるようにしました
- 作業時間も記録しました
- ファイル添付
- pngを添付しました
でき姿
添付ファイルの実体はここに
今日は2/21なので2021年02のフォルダができてますね
ファイル名やチケットの紐づけはデータ管理されているのでしょうが、そこまでは調査していませんC:\Bitnami\redmine-3.4.6-5\apps\redmine\htdocs\files\2021\02
新バージョンのインストール
前提
旧バージョンの停止はしていません。
起動したまま、お隣に新しくインストールします。ポート衝突
インストーラーが自動カウントアップでデフォルト+1してくれます(賢い、、、)。
自分の好みのとこだけ手入力します。Thin_redmineについて
自動カウントアップでポート衝突を避けてくれますが、手動ではポート設定できないようです。
あとから直接3003,3004にHTTPでアクセスすると、実際に割り当てられていることが確認できます
さて、またインストールします
言語選択
日本語にしました。画像省略管理者ユーザ作成
旧バージョンのインストール時とあえて同じ(挑戦)
ユーザ名をadminuser、パスワードは適当にadminadmin
Webサーバのポート番号(HTTP)
80だと衝突するので、自動カウントアップで81が表示されていますね
好みじゃないので8080にしてみます
※ただのApacheなので後で変えられるはず
Webサーバのポート番号(HTTPS)
443だと衝突するので、自動カウントアップで444が表示されていますね
やな数字ですが使わないのでそのまま
MySQLのポート番号
3306だと衝突するので、自動カウントアップで3307が表示されていますね
これも後でポート変更できるはずなのでそのまま
あとはインストール完了を待つ
※同居によりリソース食うので、EC2のt2.microでは30分以上時間がかかりました。
動作確認
やっとマイグレーション
公式サイトをWIndows版に読み替えていきます
データベースバックアップの作成(旧Ver側)
mysqldumpのコマンドでデータベースのバックアップをSQL形式で作成します。
公式手順と異なるところを書いていきます。
- Pathが通っていないのでbinまで移動して実行します
- C:\Bitnami\redmine-3.4.6-5\mysql\bin
- 旧バージョン接続ポートを指定します
- -P 3306
- 吐き出し先を指定します
- C:\temp
-
パスワード
- インストールの時に設定したRedmine管理者と同じ
- adminadminですね。
-
実行コマンド
mysqldump -u root -p -P 3306 --databases bitnami_redmine --add-drop-database > C:\temp\bitnami_redmine.sql
ファイル圧縮(旧Ver側)
添付ファイルの実体と、プラグインを移行用にtarに固めろとのことです。
今回の移行は同一サーバ上なのでWindowsの特性を活かし、後で新サーバ側へコピペすればいいです。
スキップします。
ちなみに対象をWindows版に読み替えると以下
C:\Bitnami\redmine-3.4.6-5\apps\redmine\htdocs\files
C:\Bitnami\redmine-3.4.6-5\apps\redmine\htdocs\plugins
Apacheの停止(新Ver側)
Webを受付ないようにしろということでしょうか?
公式手順とは異なりますが、Thin_redmineも停止させました。
Linux版ではスクリプトキックするようですが、Windowsではマネジャーがあるので利用します。
ファイルのアップロード(新Ver側)
公式手順は新しいサーバへ移行していますが、今回は同一サーバ上で移行するので、この手順は不要です。スキップします。
データベースのリストア作業(新Ver側)
mysqlコマンドでデータベースへSQLを流し込みます。
公式手順と異なるところを書いていきます。
- Pathが通っていないのでbinまで移動して実行します
- C:\Bitnami\redmine-4.1.1-8\mysql\bin
- 新バージョン接続ポートを指定します
- -P 3307
- 取得元を指定します
- C:\temp
-
パスワード
- インストールの時に設定したRedmine管理者と同じ
- adminadminですね。
-
実行コマンド
mysql -u root -p -P 3307 < C:\temp\bitnami_redmine.sql
※エラーがでる場合は、関係するものをSQLで削除して再実行しろとのことです。
ファイルの移行(新Ver側)
公式手順は新しいサーバへ移行していますが、今回は同一サーバ上で移行するので、単純コピペします。
ですのでtarコマンドでの解凍は不要です。
ただし大量データの場合は容量不足にならないか、注意必要です。
また、Linux版ではその後に権限設定していますが、Windows版ではAdministratorで作業していれば関係ないものと思います。
データベースの最新化(新Ver側)
内容が理解できませんでしたが、
rubyソースコードを実行できる状態にするようです。
Pathが通ってなかったりで一苦労しました。
-
コマンド
cd C:\Bitnami\redmine-4.1.1-8\apps\redmine\htdocs bundle exec rake db:migrate RAILS_ENV="production"
-
続きでキャッシュクリア
bundle exec rake tmp:cache:clear
プラグインコピー
ないので手順スキップします。
再起動
Thin_redmine, Thin_redmine2, Apacheの順で起動します。
移行結果の確認
あとがき
今回無事移行することができ、作業した甲斐がありました。
後始末方法や、easy_ganttの導入など、追加で記載したいと思っています。
qiita初投稿で長々と書いてしまったので、今後は短くわかりやすくをこころがけたいと思います。
下記は後始末方法の概要
旧Versionのアンインストール
コンパネ上一つしかでてこないので、アンインストーラでしか削除できません。
旧版のディレクトリにある、削除バッチ(exeファイル)を実行しましょう
C:\Bitnami\redmine-3.4.6-5\uninstall.exe
ポート設定の戻し方
削除が終われば、衝突はなくなります。
ユーザに意識させないため、Apache、MySQLのポートをデフォルトポートに戻しましょう。
マーネジャーを起動させ、Configから変更できます。
サービスの依存関係には注意しましょう。
以上です。