*目次 [#u1aeacbf] #contents *データベース管理 [#ic424f66] **初期データベースの作成 [#le8241ff] -mysqlの管理コマンドを使ってデータベースを作っても良いが、rakeコマンドで作ることもできる。 -rake db:create で config/database.ymlの設定に従ってデータベースを作ってくれる。当然database.ymlに記述されているユーザー、パスワードは正しいモノでないといけない。 rake db:create RAILS_ENV='development' ※以下のエラーがでる場合、database.ymlの「host: localhost」を「host: 127.0.0.1」に変更。mysql用ドライバのバグらしい。 #pre{{ Couldn't create database for {"reconnect"=>false, "encoding"=>"utf8", "username" =>"testuser", "adapter"=>"mysql", "database"=>"depot_development", "host"=>"loca lhost", "pool"=>5, "password"=>"testpassword"}, charset: utf8, collation: utf8_u nicode_ci (if you set the charset manually, make sure you have a matching collat ion) }} *テーブル管理 [#g01a6102] **migrationとは [#cdfa8ae5] -テーブルの作成やカラムの追加をruby scriptで行うことができるもの。 -バージョン管理が可能。 -テストデータの投入も可能。ただし2.3.4以降seeds.rbを使うのがベター? **migrationファイルを作る [#y9dd3dd7] ***単独のmigrationファイルを作る [#z1e08bba] ruby script/generate migration create_tables db/migrate/XXXXXXXXXXXXXXXX_create_tables.rbというファイルができているのでその中身を編集する。 ※ただしmodelやscaffoldと同時にmigrationファイルを作るのが普通らしい。 **migrationを最初からやりなおす [#lb50b985] -VERSION=Xを指定するとそのバージョンまで戻る。 rake db:migrate VERSION=0 -その後バージョンを指定せずに実行すれば最新まで再実行される。 rake db:migrate *データ管理 [#a9e4a7fd] **マスターデータの管理 [#se3eff1b] -[[Rails 2.3.4で追加されたseeds.rbについて - ひげろぐ:http://brass.to/blog/rails-2-3-4%E3%81%A7%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%9Fseeds-rb%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html]]によると、seeds.rbを使ってマスターデータを投入するのがよさそう。 -db/seeds.rbの中には普通にrubyのコードを書けばよいのでrailsの機能を使ってINSERTできる。 #pre{{ Genre.delete_all Genre.create([ {:type => 1, :label => 'サッカー'}, {:type => 2, :label => '野球'}, ]) }} -以下のコマンドで実行する rake db:seed