Redmineで使うデータベースを変更する

2010-05-23 15:00  •  分類:

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

参考

作成: 2010-05-23 15:00  •  分類: