カレーの恩返し

おいしいのでオススメ。

rake db:migrateとrake db:schema:loadの違い

rake db:migraterake db:schema:load はどちらもテーブルを作成、変更、削除するときに使うコマンドだけど違いがよく分かっていなかったのでメモメモ。

rake db:migrate

  1. migrateファイル群を元にschema.rbを作成
  2. schema.rbを元にSQLクエリを発行する

rake db:schema:load

  1. schema.rbを元にSQLクエリを発行する

 

 

要するにrake db:schema:load はmigrateファイルの変更は考慮しないよってことか。

ローカルでは rake db:migrete , CIツール上では rake db:schema:load と使い分けるのが一般的で、そうすることによってmigrateし忘れてpushしてもCIツール上のschema.rbのバージョンが同じになるようにしてるみたい。 賢いなあ。