rails を使いはじめたときに最初につまづいた、 schema.rb ファイルとマイグレーションファイルの関係について自分用備忘録。
図解
-
migrationファイルと
schema.rbは直接無関係。 -
schema.rbはdb:schema:dumpタスクにより、現在参照しているDBのテーブル構造から作成される。 -
マイグレーションがどこまで実行されているかは関係ない。
-
db:migrate(db:rollback) タスクの実行でmigrationファイルの実行が行われる。 -
その後自動的に
db:schema:dumpも実行されるのでschema.rbも更新される。 -
db:schema:loadタスクでschema.rbの内容を現在参照しているDBに適用。 -
新規作成した空っぽのDBにテーブル構造などをロードする際に使う。
その他、db関連のrakeタスクまとめ
db:create
DBの作成。
db:drop
DBの削除。
db:reset
以下のショートカット。
db:drop
db:create
db:schema:load
