redmineのDBをSQLite3からMySQLに変更してみる
例によって人様のパクリです。忘れないうちにメモ書き。
- config, db, filesだけはバックアップしておく
- mysqlでredmineデータベースを作成
- config/database.yml の設定を、mysql用に修正
- rake db:migrate RAILS_ENV=...
- roles, schema_migrations, usersの3テーブルだけは初期データが入っているのでdelete
- http://d.hatena.ne.jp/damegane/20080220/1203506126の内容を参考にスクリプト作成
- スクリプト実行
ただし、上記のスクリプトだと(恐らく)文字化けが発生。
けいの開発記録MySQL/Rubyを用いてMySQLへのデータベースアクセスによると、MySQL/Rubyを使った場合、/etc/my.cnfのdefault-character-setの内容を無視してLatin-1を使用する模様。
なので、上記サイトを参考に、$my = Mysql::new ... を下記のように書き換える。
$my = Mysql.init() $my.options(Mysql::SET_CHARSET_NAME, "utf8") $my.real_connect("localhost", MYSQL_USER, MYSQL_PW, DB_MYSQL)
まだ100%確認してませんが、これで上手くいったみたい。
参考文献
2009-03-18追記
Null値の扱いがおかしくなる模様。
問題になるのは、以下の2点
- issues.due_date未記入分が、"0000-00-00"になる。
- 0.8.1だと、後で一括変更する時にこける
- journal_details.old_value未記入分が、空文字列になる。
- issues_helper.rbのshow_detailで、due_dateの整形を使用としてエラーになる。
どちらも、Nullに更新する必要がある。
その他
- issues.fixed_version_idが0になる。
- issues.category_idが0になる。
- issue_categories.assigned_to_idが0。
- issues.assigned_to_idが0。
- issues.start_dateが0000-00-00