Redmineで使うデータベースを変更する
Redmineで使用するデータベースはMySQL, SQLite, PostgreSQLから選択可能です。このうちSQLiteは導入が簡単で手軽に使い始めることができますが、本格的な運用を始めるとパフォーマンスが問題になってきて、MySQL等に移行したくなる場合があります。
このようなときに利用できるのが yaml_db というRailsプラグインです。yaml_dbを使うと、RedmineなどRuby on Railsベースのアプリケーションのデータベースの内容をYAML形式のファイルに書き出すこと、そしてYAML形式のファイルに書き出した内容をデータベースに取り込むことができます。移行元のデータベースの内容をファイルに書き出し、移行先のデータベースに取り込めば、異なる種類のデータベースに切り替えることができます。
手順
前提条件
- yaml_dbのインストールには git が必要です。あらかじめインストールしておいてください。
- 移行元と移行先のRedmineのバージョンは合わせておいてください。移行元のRedmineが古い場合は、あらかじめ移行元のRedmineをバージョンアップした上で、データベースに対しても
rake db:migrate
を実行しておいてください。
yaml_dbのインストール
Redmineのインストールディレクトリで以下のコマンドを実行し、yaml_dbをインストールします。
$ script/plugin install git://github.com/adamwiggins/yaml_db.git
移行元のデータベースをファイルに出力
以下のコマンドを実行すると、現在のproduction環境のデータベースの内容がdb/data.ymlに書き出されます。
$ rake db:dump RAILS_ENV=production
移行先のデータベースにデータを取り込む
config/database.ymlを開き、production環境の設定値を新しいデータベースにあわせて変更してください。新しい空のデータベースはあらかじめ作成しておいてください。
データベースの設定ができたら以下のコマンドを実行します。新しいデータベースに必要なテーブルが作成され、db/data.ymlからデータが取り込まれます。
$ rake db:load RAILS_ENV=production
参考
- Redmine(Rails) の DB を SQLite3 から MySQL に移行する (GARIN.JP)