概要
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
- 旧バージョン:Bitnami-Redmine-3.4.6
- 新バージョン:Bitnami-Redmine-4.1.1
Redmineについて(URLリンク集)
インストーラーのリンク
参考にさせていただいたサイト
- [公式サイト][BitnamiUpgrade]
- バージョンアップはアップグレードと表現するのですね。
- [Windows で Bitnami Redmine Stack を用い,1つの Apache サーバーで複数の Redmine を立ち上げる][サイト1]
- Redmineの基本的な構成とマネジャーの使い方と基盤設定変更について理解することができました
- [メモ:Bitnami Redmine にプラグインをインストール][サイト2]
- Linux版ですが、PATHの通し方のヒントを得ました
[BitnamiUpgrade]:https://docs.bitnami.com/ibm/apps/redmine/administration/upgrade/
[サイト1]:https://qiita.com/SKYS/items/8197ebc19d85954e7688
[サイト2]:https://qiita.com/wukann/items/4ee5381696920faff5b2
全体的な検証の流れ
- 旧バージョンのインストール
- 旧バージョンでの検証用準備
- プロジェクト作成
- ユーザ作成
- カスタムフィールド追加
- チケット作成
- ファイル添付
- 新バージョンのインストール
- マイグレーション(基本的には公式サイトの手順通りに進めます)
- データ移行
- ファイル移行
- 新バージョンでの確認
まずは、旧バージョンのインストール
動作確認
次に、旧バージョンでの検証用準備
- プロジェクト作成
- 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分以上時間がかかりました。
### 動作確認
* ちゃんと同居しています(上段が新、下段が旧)

***
# やっとマイグレーション
[公式サイト][BitnamiUpgrade]を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のマネージャ起動

* Stopボタンを押す

* 停止を確認(Thin_redmineも停止させました)

## ファイルのアップロード(新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が通ってなかったりで一苦労しました。
* パスを通す(use_redmineバッチファイルをたたきます)
下記実行するとプロンプトがたちあがります。

* コマンド
>```
>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の順で起動します。
* 起動前

* 起動後

* アクセス確認
URL忘れてしまったら下記からアクセスできます

* ログインしプロジェクトの画面へ
成功!!

***
# 移行結果の確認
* プロジェクトや、ユーザ、作業時間などうまく移行できているようです。

* チケット内容、添付ファイル、カスタムフィールド(リスト)が移行できています

* カスタムフィールド(ロングテキスト)、注釈なども問題ありません

***
# あとがき
今回無事移行することができ、作業した甲斐がありました。
後始末方法や、easy_ganttの導入など、追加で記載したいと思っています。
qiita初投稿で長々と書いてしまったので、今後は短くわかりやすくをこころがけたいと思います。
下記は後始末方法の概要
### 旧Versionのアンインストール
コンパネ上一つしかでてこないので、アンインストーラでしか削除できません。
旧版のディレクトリにある、削除バッチ(exeファイル)を実行しましょう
C:\Bitnami\redmine-3.4.6-5\uninstall.exe
### ポート設定の戻し方
削除が終われば、衝突はなくなります。
ユーザに意識させないため、Apache、MySQLのポートをデフォルトポートに戻しましょう。
マーネジャーを起動させ、Configから変更できます。
サービスの依存関係には注意しましょう。
以上です。