Redmine > 1.4→3.4へバージョンアップ


Redmine 1.4→3.4へバージョンアップ

環境:Windows

※ 当初1.4→3.4を試したのですが失敗しました。
1.4→2.3→3.4でバージョンアップで成功しました。
以下の方法は3.1→3.4でも同様にバージョンアップ可能でした。

参考(Special Thanks!)
Bitnami版 Redmine v3.2.0をインストールして、v1.1.1からデータを移行してみました - argius note
萌えるmel読本の中の人が書くブログ: bitnami redmine 1.x->2.x 移行メモ

Redmine 1.4→2.x

Redmine 2.xのインストール

Webには2.xのインストーラーが見つからなかったが、自環境にインストーラーがあったので2.3使った。

無い時はどこからDLしたらよいのだろう。。。
掲示板にも同様に困っている人いるらしい。
Need installer older Redmine 2.3.0-0 - Redmine - Bitnami Community

どうやら直リンでDL可能なようだ。
https://downloads.bitnami.com/files/redmine/bitnami-redmine-2.3.0-0-windows-installer.exe32

添付ファイルデータ移行

旧環境の 以下フォルダ配下のデータを
\apps\redmine\htdocs\files
\apps\redmine\htdocs\plugins

新環境の同フォルダへコピーする
\apps\redmine\htdocs\files
\apps\redmine\htdocs\plugins

DBデータ移行

旧環境でmysqldumpでエクスポートしたSQLを、新環境に取り込みます。

DBデータをDump

ユーザー・パスワードは、
\apps\redmine\htdocs\config\database.ymlに設定がある。

mysqldump -u bitnami --password=xxxxxxx --all-databases  --default-character-set=binary --port=3307 > dump.sql

※MySQLを複数使ってる場合にはポート番号も指定する。

以下のようなエラーが出たら、MySQLが複数バージョン入っている場合が想定される。

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)

その場合には明示的にプログラムを指定する

C:\BitNamiRedmine\redmine-3.4.3\mysql\bin\mysqldump  -u bitnami --password=xxxxxxx --all-databases  --default-character-set=binary --port=3307 > dump.sql

旧環境停止

旧環境は不要の為インスタンスやサービスは止めておく。
manager-windows.exeでStop All

新環境にDBインポート

mysql -u bitnami -p bitnami_redmine --password=xxxxxxx --port=3308 < dump.sql

※MySQLを複数使ってる場合にはポート番号も指定する。

確認

この時点でサイトにアクセス可能かいちおう確認しておいた方がいい。(心の安心)

マイグレーション

rubyへのパスが通ってなければパスを通す
CMD.exeにて
setx /M PATH "%PATH%;C:\BitNami\redmine-2.3.1-0\ruby\bin"

一度CMD.exeを閉じて再度開く
echo %path%
でパスを確認

カレントフォルダをapps\redmine\htdocsへ移動して以下を実行
shell-session
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

CORE_RL_magick_.dll が無いと言われた場合、redmine-2.3.1-0\imagemagick へのPATHを通して再度実行する。

特にエラーなく完了したら成功。

Redmine 2.3→3.4

最新版のインストール

Redmineの最新版を取得
https://bitnami.com/stack/redmine

執筆時点での最新版は3.4.3
1.4→2.3と同じ作業を行う。

添付ファイルデータ移行

旧環境の 以下フォルダ配下のデータを
\apps\redmine\htdocs\files
\apps\redmine\htdocs\plugins

新環境の同フォルダへコピーする
\apps\redmine\htdocs\files
\apps\redmine\htdocs\plugins

DBデータ移行

旧環境でmysqldumpでエクスポートしたSQLを、新環境に取り込みます。

ユーザー・パスワードは、
\apps\redmine\htdocs\config\database.ymlに設定がある。

Dumpファイルを作成する

mysqldump -u bitnami --password=xxxxxxx --all-databases  --default-character-set=binary --port=3308 > dump.sql

※MySQLを複数使ってる場合にはポート番号も指定する。

新環境にDBインポート

mysql -u bitnami -p bitnami_redmine --password=xxxxxxx --port=3307 < dump.sql

※MySQLを複数使ってる場合にはポート番号も指定する。ポート番号は新環境のMySQLのポート番号。

確認

インポートが終わったら
この時点でサイトにアクセス可能かいちおう確認しておいた方がいい。(心の安心)

マイグレーション

PATH

新環境のRubyとimagemagicへ割当なおす。
echo %path% で確認

マイグレーション

カレントフォルダをapps\redmine\htdocsへ移動して以下を実行

bundle exec rake db:migrate RAILS_ENV=production

エラーが出てしまいました
js
Mysql2::Error: Table 'queries_roles' already exists: CREATE TABLE `queries_roles` (`query_id` int(11) NOT NULL, `role_id` int(11) NOT NULL) ENGINE=InnoDB

①テーブル削除

MySqlの実行ファイルへパスを通すか、\mysql\binへカレントフォルダを移動して実行する。

mysql -u bitnami --password=xxxxx --port=3307

でmysqlへ入り、テーブルを削除

USE bitnami_redmine
drop table queries_roles;

②再度マイグレーションを行う

が、ここでもエラーが出る。

bundle exec rake db:migrate RAILS_ENV=production

Mysql2::Error: Table 'custom_fields_roles' already exists: CREATE TABLE `custom_fields_roles` (`custom_field_id` int(11) NOT NULL, `role_id` int(11) NOT NULL) ENGINE=InnoDB

今度はcustom_fields_rolesテーブルを削除
これをエラーがでなくなるまで①と②を繰り返す。 (CMDは2画面でやった方がよい)

結果削除したテーブル一覧

  • queries_roles
  • custom_fields_roles
  • email_addresses
  • roles_managed_roles
  • imports
  • import_items
  • custom_field_enumerations

※argius note で紹介されていた削除したテーブル一覧とは若干違いました。changeset_parentsを削除しなくてOKでした。

プラグインのマイグレーション

bundle exec rake redmine:plugins:migrate RAILS_ENV=production

特にエラーなく完了したら成功。おつかれさまでした。

Subversionについて

3.4系からSubversionが付かなくなったもよう。
別途インストールする必用があるので以下にメモを残した。

Bitnami > Redmine > Subversionのインストール - Qiita