Redmine 2.3のデータをRedmine 3.3に移行
古いサーバーで動いていたRedmineのデータを、新しいサーバーに移行します。
具体的に言うとMySQLのデータをMariaDBに移行。普通に、dumpを使って作業します。
使用した環境
- 旧サーバー
環境 | 情報 |
---|---|
CentOS | CentOS release 6.6 (Final) |
Redmine | 2.3.1.stable |
Ruby | 1.9.3 (i686-linux) |
Rails | 3.2.13 |
- 新サーバー
環境 | 情報 |
---|---|
CentOS | CentOS Linux release 7.2.1511 (AltArch) |
Redmine | 3.3.1.stable |
Ruby | 2.3.3-p222 (2016-11-21) [i686-linux] |
Rails | 4.2.7.1 |
データの保存・復元
旧サーバーでデータを保存
データベースのデータをすべてダンプ。
# mysqldump -u user_redmine -p{password} db_redmine > ~/backup_mysql.dump
Redmineで使われているファイルを圧縮。
# cd /var/lib/redmine # tar zcvf ~/backup_files.tar.gz files
それぞれ、scpなどを使って新サーバーにコピーしておきます。
新サーバーでデータを復元
ファイルを展開。
# tar zxvf backup_files.tar.gz -C /var/lib/redmine
ダンプしたデータを復元。
# mysql -u user_redmine -p{password} db_redmine < ~/backup_mysql.dump
マイグレーション
不要なテーブルを削除
これだけで動いてくれれば楽なんですが・・・ このままだとデータのマイグレーションでエラーが出るので、不要なテーブルを削除しておきます。
# nano drop_table.sql
以下の内容でファイルを保存。
drop table changeset_parents; drop table queries_roles; drop table custom_fields_roles; drop table email_addresses; drop table roles_managed_roles; drop table imports; drop table import_items; drop table custom_field_enumerations;
まとめて、削除を実行します。
# mysql -u user_redmine -p{password} db_redmine < drop_table.sql
データベースのマイグレーション
マイグレーションを実行します。
# cd /var/lib/redmine # bundle exec rake generate_secret_token # RAILS_ENV=production bundle exec rake db:migrate
動作を確認
ここまで出来たら、実際にアクセスして確認しましょう。
http://{サーバーのアドレス}/redmine
これでアクセスできれば成功です。
参考資料
Redmine3.1をCentOS7.1にインストールし、既存のRedmine1.2のデータの移行を行う手順 - Qiita
http://qiita.com/k-awa/items/88243fbee921bf3ac13b