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へ移動して以下を実行
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
エラーが出てしまいました
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が付かなくなったもよう。
別途インストールする必用があるので以下にメモを残した。