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をインストール
まず、Gemfileに以下の1行を追加してbundle installする
production環境のデータをエクスポートする
するとdb/dump.yamlができる。
次にconfig/database.ymlを以下に修正
そのあとにrailsでDB&テーブル作成 する。
それは、排他制御がファイルのロックであること! なんだよねぇ。
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
$ 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
そしていよいよ本題のデータ移行
development環境へproduction環境のデータをコピーするのにもつかえるから便利ですね。
cronで定期的に
$ rake db:load RAILS_ENV=production $ rake db:load ←ついでにdevelopment環境にも同じデータをインポートこれで無事にデータ移行できました。
development環境へproduction環境のデータをコピーするのにもつかえるから便利ですね。
cronで定期的に
$ rake db:dump RAILS_ENV=production $ rake db:loadとしとけば、便利かも。
テーブルのデータをエクセルに取得、更新、削除することだけではなく、複数のSQLを実行して、結果を
一括Excelの各シートに出力することもできます。データ作成の機能を使って、
氏名、住所、電話など60種類以上のダミーデータも作成できます。
作成したデータを直接DBに登録して、シート名とテーブル名が一致すれば、
一括で複数テーブルのデータもExcelに取得できます。
詳しくは下記サイトをご参照ください。
http://www.superdbtool.com
ベクターからもダウンロードできます。
Sqlite以外、SQL Server,Oracle,Sybase,MySQL,Postgre,DBもご利用できます。