Windowsで、Redmine2.3 を 4.1 にバージョンアップしてみた
目次
- 目次
- 概要
- 旧サーバ:Redmine 2.3 を確認する
- 旧サーバ:Redmine 2.3 のデータをエクスポートする
- Redmine 4.1 ダウンロード
- 新サーバ:Redmine 4.1 をインストール
- 新サーバ:Redmine 2.3 のデータをインポートし、マイグレーションする
- 記事内の環境について
概要
Windows Server 2008 R2 で Redmine 2.3 を使用していましたが、Windows Server 2008 の
サポート終了に伴い、Windows Server 2012 R2 でRedmine 4.1 に移行しましたので、その時の手順をメモしておきます。
作業の概要は以下の通りです。
旧サーバ(Windows Server 2008 R2)での作業
新サーバ(Windows Server 2012 R2)での作業
補足
旧サーバ:Redmine 2.3 を確認する
dos>cd /d C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs dos>ruby script\about Environment: Redmine version 2.3.0.stable Ruby version 1.9.3 (i386-mingw32) Rails version 3.2.13 Environment production Database adapter Mysql2 Redmine plugins: no plugin installed
旧サーバ:Redmine 2.3 のデータをエクスポートする
データベース設定を確認する
- メモ帳等で以下のファイルを開き、「production:」の値を確認する。
C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs\config\database.yml
production: ←★ adapter: mysql2 database: bitnami_redmine ←★ host: localhost port: 3306 username: bitnami ←★ password: "8888888888" ←★ encoding: utf8
使用しているポート番号を確認する
- コマンドプロンプトを開き、以下のコマンドを実行する
dos>netstat -a -b アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:80 xxxxxxxx:0 LISTENING [httpd.exe]
サービスを停止する
Redmine 2.3用の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\BitNami\redmine-2.3.0-0\manager-windows.exe「MySQL Database」以外のサービスをすべて止める。
とりあえず、上から順に不要なものを止めれば大丈夫っぽいです。
データベースをバックアップ
Redmineで使用している MySQLのデータベースをバックアップします。
次のバッチを実行し、Redmine用のコマンドプロンプトを開く。
C:\BitNami\redmine-2.3.0-0\use_redmine.batエクスポートするファイル一式を格納するフォルダを作成する。
フォルダ名は例です。
dos>mkdir C:\Backup2008-230\
- 以下のコマンドでエクスポートを実行します。
- 「データベース設定を確認する」の所で確認した値を使用します。
- 出力先のパス・ファイル名は任意です。ここでは例として db.dmp の名前で出力しています。
- passwordの値は、""で括っても、値だけでもどちらでも大丈夫なようです。
- 出力先のディレクトリは、あらかじめ作成しておく必要があります。
- エラーが出なければ、エクスポートできてると思われます。
dos>cd /d C:\BitNami\redmine-2.3.0-0\mysql\bin\ dos>mysqldump.exe --user=bitnami --password=8888888888 bitnami_redmine > C:\Backup2008-230\db.dmp
- エクスポートしたファイルを確認する。
- 最後に、以下が出力されていればエクスポートできていると思われます。
-- Dump completed on 2020-01-02 0:00:46
- 最後に、以下が出力されていればエクスポートできていると思われます。
dos>tail C:\Backup2008-230\db.dmp
ファイルのバックアップ
添付ファイルなどのファイルをバックアップします。
- エクスプローラでコピーしてもよいが、ここではコピー結果をログに残すため次のコマンドでコピーする。
- コピー先、ログの出力先は、上記で作成したフォルダに格納します。
- ログの出力は任意です。
- 実行後、ログファイルを開き、失敗していないことを確認する。
dos>robocopy "C:\BitNami\redmine-2.3.0-0\apps\redmine\htdocs\files" "C:\Backup2008-230\files" /E /R:3 /LOG:C:\Backup2008-230\CopyLog.txt
Redmine 4.1 ダウンロード
ダウンロード
BitNami Redmine のダウンロードサイトを開く
https://bitnami.com/stack/redmine/installer「On my computer」→「Win / Mac / Linux」→「Download for Windows 64-bit」をクリックしてダウンロードする。
ファイルのチェック
- 同「Checksum」をクリックし、ダウンロードしたファイルのハッシュ値が一致することを確認する。
CertUtil -hashfile <ダウンロードしたファイル名>
dos>CertUtil.exe -hashfile bitnami-redmine-4.1.0-0-windows-x64-installer.exe SHA1 ハッシュ (対象 bitnami-redmine-4.1.0-0-windows-x64-installer.exe): 955672d5850fc456519f79ee18a797333b3112a2 CertUtil: -hashfile コマンドは正常に完了しました。
古いバージョンのダウンロード
最新ではなく、特定の古いバージョンのRedmineを使いたい場合、Bitnamiのサイトではダウンロードが見つかりませんでしたが、直リンクならダウンロードできそうです。
いくつかリンクを貼っておきます。- https://downloads.bitnami.com/files/redmine/bitnami-redmine-2.3.0-0-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.0.3-0/bitnami-redmine-3.0.3-0-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.3.3-1/bitnami-redmine-3.3.3-1-windows-installer.exe
- https://downloads.bitnami.com/files/stacks/redmine/3.4.3-0/bitnami-redmine-3.4.3-0-windows-installer.exe
新サーバ:Redmine 4.1 をインストール
インストール
ダウンロードしたインストーラーを実行する
bitnami-redmine-4.1.0-0-windows-x64-installer.exe「Language Select」画面
[日本語]を選択する「コンポーネントを選択」画面
「Installation folder」画面
C:\Bitnami\redmine-4.1.0-0「管理者アカウントの作成」画面
項目 初期値 設定値 備考 表示用氏名 User Name admin 日本語は使用しないほう良さそう。
Internal Error が発生しました。Emailアドレス mail@example.com admin@example.com ログイン名 user admin パスワード <未設定> 任意 8文字以上 「Webサーバのポート番号」画面
標準のポート 80 が使用中の場合この画面が教示される。「データベースに保存する際の既定の言語」画面
“日本語”を選択
インターネットに接続できない環境で使用しているので ON → OFF
「終了」「Awesome! Redmine is now Installed!」画面が表示される
http://127.0.0.1/
確認
- 「Awesome! Redmine is now Installed!」画面で「Access Redmine」クリック、もしくは次のURLを開き、Redmineのトップ画面が開くことを確認する。
http://127.0.0.1/redmine/
新サーバ:Redmine 2.3 のデータをインポートし、マイグレーションする
Redmineの環境を確認する
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>ruby bin\about Environment: Redmine version 4.1.0.stable Ruby version 2.5.7-p206 (2019-10-01) [x64-mingw32] Rails version 5.2.4.1 Environment production Database adapter Mysql2 Mailer queue ActiveJob::QueueAdapters::AsyncAdapter Mailer delivery smtp SCM: Git 2.19.1 Filesystem Redmine plugins: no plugin installed
データベース設定を確認する
- メモ帳等で以下のファイルを開き、「production:」の値を確認する。
C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs\config\database.yml
production: ←★ adapter: mysql2 database: bitnami_redmine ←★ host: 127.0.0.1 username: bitnami ←★ password: 9999999999 ←★ encoding: utf8mb4 port: 3306
サービスを停止する
Redmine 4.1用の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\Bitnami\redmine-4.1.0-0\manager-windows.exe「MySQL Database」以外のサービスをすべて止める。
とりあえず、上から順に不要なものを止めれば大丈夫っぽいです。
エクスポートファイルを取得
- 旧サーバで出力したファイル一式を持ってきます。
C:\Backup2008-230\
データベースをリストア
Redmineで使用している MySQLに、旧サーバでエクスポートした Redmine 2.3 のデータベースをリストアします。
dos>cd /d C:\Bitnami\redmine-4.1.0-0\mysql\bin dos>mysql.exe --user=bitnami --password=9999999999 bitnami_redmine < C:\Backup2008-230\db.dmp
- db.dmp は、エクスポートしたときのファイル名です。
- passwordの値は、上記「データベース設定を確認する」で確認した値です。
- 「mysql: [Warning] Using a password on the command line interface can be insecure.」が出力されました。
データベースマイグレーション
- 上記で開いたコマンドプロンプトで続ける
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>bundle exec rake db:migrate RAILS_ENV="production"
- 以下の感じでエラーが出なければよしとする。
== 20151025072118 CreateCustomFieldEnumerations: migrating ==================== -- create_table(:custom_field_enumerations, {:options=>"ENGINE=InnoDB", :id=>:integer}) -> 0.0107s == 20151025072118 CreateCustomFieldEnumerations: migrated (0.0124s) =========== : : == 20190620135549 ChangeRolesNameLimit: migrating ============================= -- change_column(:roles, :name, :string, {:limit=>255, :default=>""}) -> 0.0551s == 20190620135549 ChangeRolesNameLimit: migrated (0.0567s) ====================
- 以下の感じのエラーが出たら、対象のテーブルを削除することで解消するようです。
Mysql2::Error: Table 'queries_roles' already exists: CREATE TABLE `queries_roles` (`query_id` int NOT NULL, `role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'custom_fields_roles' already exists: CREATE TABLE `custom_fields_roles` (`custom_field_id` int NOT NULL, `role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'email_addresses' already exists: CREATE TABLE `email_addresses` (`id` int NOT NULL AUTO_INCREMENTPRIMARY KEY, `user_id` int NOT NULL, `address` varchar(255) NOT NULL, `is_default` tinyint(1) DEFAULT FALSE NOT NULL, `notify` tinyint(1) DEFAULT TRUE NOT NULL, `created_on` datetime NOT NULL, `updated_on` datetime NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'roles_managed_roles' already exists: CREATE TABLE `roles_managed_roles` (`role_id` int NOT NULL, `managed_role_id` int NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'imports' already exists: CREATE TABLE `imports` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `type` varchar(255), `user_id` int NOT NULL, `filename` varchar(255), `settings` text, `total_items` int, `finished` tinyint(1) DEFAULT FALSE NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL) ENGINE=InnoDB Mysql2::Error: Table 'import_items' already exists: CREATE TABLE `import_items` (`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `import_id` int NOT NULL, `position` int NOT NULL, `obj_id` int, `message` text) ENGINE=InnoDB Mysql2::Error: Table 'custom_field_enumerations' already exists: CREATE TABLE `custom_field_enumerations` (`id` int NOTNULL AUTO_INCREMENT PRIMARY KEY, `custom_field_id` int NOT NULL, `name` varchar(255) NOT NULL, `active` tinyint(1) DEFAULT TRUE NOT NULL, `position` int DEFAULT 1 NOT NULL) ENGINE=InnoDB
- テーブルの削除手順
- user、password、DB名は、上記で確認した値。
dos>cd /d C:\Bitnami\redmine-4.1.0-0\mysql\bin dos>mysql --user=bitnami --password=9999999999 bitnami_redmine mysql> drop table queries_roles; ←エラーの出たテーブルを指定する Query OK, 0 rows affected (0.05 sec) mysql> exit Bye
もういちど、「データベースマイグレーション」を実施する。
キャッシュのクリア
- 上記で開いたコマンドプロンプトで続ける
dos>cd /d C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs dos>bundle exec rake tmp:cache:clear ※エラーメッセージが出ずに終われば、正常終了なんだと思います。
dos>bundle exec rake tmp:sessions:clear ←こちらはエラーになった。 rake aborted! Don't know how to build task 'tmp:sessions:clear' (See the list of available tasks with `rake --tasks`) Did you mean? tmp:sockets:clear C:/Bitnami/redmine-4.1.0-0/apps/redmine/htdocs/vendor/bundle/ruby/2.5.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>' (See full trace by running task with --trace)
ファイルのリストア
添付ファイルなどのファイルをリストアします。
- エクスプローラでコピーしてもよいが、ここではコピー結果をログに残すため次のコマンドでコピーする。
- コピー元、ログの出力先は、上記で作成したフォルダに格納する。
- ログの出力は任意。
-実行後、 ログファイルを開き、失敗していないことを確認する。
dos>robocopy "C:\Backup2008-230\files" "C:\Bitnami\redmine-4.1.0-0\apps\redmine\htdocs\files" /E /R:3 /LOG:C:\Backup2008-230\RestoreLog.txt
サービスの開始
Redmine の「Application Manager」を起動し、「Manage Servers」タブを開く。
C:\Bitnami\redmine-4.1.0-0\manager-windows.exe「Start All」クリック
すべてが緑色になったことを確認する。
確認
Redmineにログオンし、問題なく使えることを確認する。
旧Redmineのすべてのサービスを停止
旧VerのRedmine と 新VerのRedmineを同一サーバ上でバージョンアップする場合は、旧VerのRedmineをアンインストールもしくは無効化する必要があります(旧Verが自動起動するとまずいので)。無効化するときは以下の手順で。
dos>dir /X C:\BitNami\ 2020/01/03 14:48 <DIR> REDMIN~1.0-0 redmine-2.3.0-0 ←無効化したいのは Redmine 2.3 ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ 長い名前と、それの短い名前を確認
- サービスの一覧を取得し、上記ディレクトリ名のサービスを確認する。
dos>wmic SERVICE GET Caption,PathName | findstr BitNami redmineApache "C:\BitNami\REDMIN~1.0-0\apache2\bin\httpd.exe" -k runservice redmineMySQL C:\BitNami\redmine-2.3.0-0\mysql\bin\mysqld.exe --default・・・ redmineSubversion "C:\BitNami\redmine-2.3.0-0\subversion\scripts\winserv.exe" redmineThin1 (managed by WinServ) "C:\BitNami\redmine-2.3.0-0\apps\redmine\scripts\winserv.exe" redmineThin2 (managed by WinServ) "C:\BitNami\redmine-2.3.0-0\apps\redmine\scripts\winserv.exe"
Windowsの「サービス」を開き、上記の短い名前/長い名前のパスが設定されているサービスについて、「スタートアップの種類」を"自動" → "無効" にする
サーバーを再起動し、旧Verのサービスが自動的に起動してこないことを確認する。
記事内の環境について
- 旧サーバ
- Windows Server 2008 R2 Standard 64bit バージョン 6.1 ビルド 7600
- Bitnami版 Redmine 2.3.0
- 新サーバ
- Windows Server 2012 R2 Standard 64bit バージョン 6.3 ビルド 9600
- Bitnami版 Redmine 4.1.0