Redmineをver2.xからver3.xへマイグレするためMySQLのDB restoreをやってみたが結論としてはがDBスキーマ不良で失敗だったの記録@20150623
マイグレ(INSTALL_DIR)は
元)redmine-2.6.1-0
先)redmine-3.0.3-0
参考としたサイトは以下
http://satsumahomeserver.com/blog/3612
http://chunye.seesaa.net/article/418976383.html
最初に環境変数を変更
RubyのbundleはPATHがないと直ぐにエラー返し・・・、なので環境変数を最初に確認し変更。
(PATH通す必要性、環境変数って前近代的と思うけど・・・、どうなんだろう?、今でもLinuxもしっかり必要で。大昔の遺物(DOSレベル)?
・・・、はさておき)
システム環境に3.0台のRubyのpathを追加(redmine-2.6.1-0のPathは既にある前提)
;C:\BitNami\redmine-3.0.3-0\ruby\bin ;C:\BitNami\redmine-3.0.3-0\imagemagick
MySQLのDBをRestore
まずマイグレ元のRedminieでSQLのバックアップファイルを作成。
マイグレ先のRedmine-3.0.3のmysqlに移動して、バックアップしたSQLファイルを指定しRestore
念のため3.0.3-0のSQLも事前バックアップしておいて、
cd C:\BitNami\redmine-3.0.3-0\mysql\bin
mysqldump -u root -P 9306 -B bitnami_redmine -p >backup.sql
まずDBの取り込み実行
バックアップ(吐き出し)とは逆向きの ”<” が単純明快
mysql -u root -P 9306 -B bitnami_redmine -p<C:\BitNami\redmine-2.6.1-0\mysql\bin\backup.sql
次にDBのマイグレを実行
cd C:\BitNami\redmine-3.0.3-0\apps\redmine\htdocs
bundle exec rake db:migrate RAILS_ENV='production'
bundle exec rake db:migrate RAILS_ENV=production
rake db:migrate RAILS_ENV=production
OKでず不発???
port番号が正しいか確認
C:\Bitnami\redmine-3.0.3-0\apps\redmine\htdocs\config
database.yml
port: 3306
redmine-3.0.3-0は9306でなく3306だった、失礼・・・
再度DBマイグレを実行
mysql -u root -P 3306 -B bitnami_redmine -p<C:\BitNami\redmine-2.6.1-0\mysql\bin\backup.sql
OK
おーOKで通った。
C:\Bitnami\redmine-3.0.3-0\apps\redmine\htdocs\files
2015 folder copy
bundle exec rake tmp:cache:clear
bundle exec rake tmp:sessions:clear
とcacheをクリアしてDBのRestoreは終わり
DB RestoreはOKだがRedmineは動作不良
終わってRedmineに戻ると新しいチケット作成でトラッカーの不整合が起き2.0で作成されたトラッカーが削除できず、かつ3.0で新しいチケット作成できず。単に2.0で作成した過去チケットを見るだけ、のRedmineになってしまった。
ググると3.0ではDB スキーマの違いありで、単なるDB Restore では無理の様子。
従い、SQLDBを直接いじってテーブル構成修正をトライ・・・でMySQLコマンドで確認した経緯を以下記録
MySQLのDB操作
bitnami-redmineのMySQL にコマンドラインから接続してみる
mysql -u ユーザー名 -D データベース名 -p
C:\BitNami\redmine-2.6.1-0\mysql\bin>mysql -u root -D bitnami_redmine -p
Enter password: ***********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 4.1.19 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
でMySQLへ接続できた。
まずはどんなDBがあるか確認
mysql>
mysql> show DATABASES;
5 rows in set (0.00 sec)
bitnami_redmineのDBがあるのが確認できたので、そのテーブル種類を確認
mysql> show tables;
51 rows in set (0.00 sec)
トラッカーの不整合が問題なのでTracker Tableを確認
2Byte文字化けだが6個のトラッカーが確認できる。
mysql> select * from trackers;
5 rows in set (0.00 sec)
合わせてトラッカーのIndexmを確認
mysql> show index from trackers;
1 row in set (0.11 sec)
トラッカーのカラムタイプを確認
mysql> show columns from trackers;
!
6 rows in set (0.01 sec)
mysql> show columns from issue_statuses;
6 rows in set (0.11 sec)
mysql> select * from issue_statuses;
6 rows in set (0.01 sec)
mysql> \q
Bye
で、これをredmine-3.0.3-0のMySQLと比較して・・・
だがここで挫折し、結局マイグレは失敗となった。