MySQL
Redmine
migration
DB
projectmanagement

Redmineをver2.xからver3.xへマイグレするためMySQLのDB restoreをやってみたが結論としてはがDBスキーマ不良で失敗だったの記録@20150623

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;

clipboard.jpg
5 rows in set (0.00 sec)

bitnami_redmineのDBがあるのが確認できたので、そのテーブル種類を確認

mysql> show tables;

clipboard_2.jpg
51 rows in set (0.00 sec)

トラッカーの不整合が問題なのでTracker Tableを確認
2Byte文字化けだが6個のトラッカーが確認できる。

mysql> select * from trackers;

clipboard_3.jpg
5 rows in set (0.00 sec)

合わせてトラッカーのIndexmを確認

mysql> show index from trackers;

clipboard_4.jpg
1 row in set (0.11 sec)

トラッカーのカラムタイプを確認

mysql> show columns from trackers;

clipboard_5.jpg!
6 rows in set (0.01 sec)

mysql> show columns from issue_statuses;

clipboard_6.jpg
6 rows in set (0.11 sec)

mysql> select * from issue_statuses;

clipboard_7.jpg
6 rows in set (0.01 sec)

mysql> \q

Bye

で、これをredmine-3.0.3-0のMySQLと比較して・・・

だがここで挫折し、結局マイグレは失敗となった。