Rails3のデフォDBはSQLite3なわけで、確かに早くて手軽で便利なんだけど、1点だけ問題がある。
それは、排他制御がファイルのロックであること! なんだよねぇ。

Railsだけで使っていれば問題ないんだけど、どうしても運用中にDBを弄ることが発生してしまう。
ってことでRails3既存環境をMySQLへ 変更してみる。

環境
ubuntu 11.04
Rails(3.0.7)
SQLite3
MySQL5

参考
http://d.hatena.ne.jp/arcright/20100725/1279992599

参考サイト様によると、 yamlでエクスポインポすると簡単に移行できるらしい。

とありえず、MySQLをインストール
$ sudo apt-get install mysql-server

 
まず、Gemfileに以下の1行を追加してbundle installする
$ nano GemFile

gem 'yaml_db' ← これを追加

$ bundle install


production環境のデータをエクスポートする
$ rake db:dump RAILS_ENV=production


するとdb/dump.yamlができる。
次にconfig/database.ymlを以下に修正

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: development
  pool: 5 
  username: root
  password: *******
  host: localhost

test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: test
  pool: 5
  username: root
  password: *******
  host: localhost

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: production
  pool: 5
  username: root
  password: *******
  host: localhost
そのあとにrailsでDB&テーブル作成 する。
$ nano Gemfile

#gem 'sqlite3-ruby', :require => 'sqlite3' ←コメントアウト
gem 'mysql2', '0.2.7' ←これを追加 ※最新版はなぜかエラーなので0.2.7を使用する

$ bundle install
$ rake db:create
$ rake db:create RAILS_ENV=production
$ rake db:create RAILS_ENV=test
$ rake db:migrate
$ rake db:migrate RAILS_ENV=production
$ rake db:migrate RAILS_ENV=test
そしていよいよ本題のデータ移行
$ rake  db:load RAILS_ENV=production 
$ rake  db:load ←ついでにdevelopment環境にも同じデータをインポート
これで無事にデータ移行できました。 
development環境へproduction環境のデータをコピーするのにもつかえるから便利ですね。
cronで定期的に
$ rake db:dump RAILS_ENV=production
$ rake db:load
 としとけば、便利かも。