rails new
をするとデフォルトで./bin/setup
スクリプトが生成される。
Rails6 では、そのなかにbin/rails db:prepare
コマンドがある。
bin/rails db:prepare
これは何をしてくれるのか。
DBが存在しない場合
bin/rails db:prepare
がすること
- DBをつくる
- schema.rb を参考にテーブルを作成する
rails db:seed
を実行する
試しに、自分のテストアプリでbin/rails db:drop
をしてDBを削除し、bin/rails db:prepare
をしてみた。
すると、テストデータが入っていることを確認できた。つまり、他の人にアプリを見てもらう場合は./bin/setup
をしてもらうだけで、テストデータが投入された状態でアプリをチェックすることができる。
DBが存在する場合
bin/rails db:prepare
がすること
rails db:migrate
を実行する。
しかし、これだとrails db:seed
は実行されないため、テストデータは投入されない。