夢のかけら

Goエンジニアの技術ブログ

rails db:resetとrails db:migrate:resetの違い

f:id:lampler:20210518195858p:plain どちらもDBをdropしてcreateするタスクだが、両者はかなり仕様が異なるので注意したい。

rails db:reset

  • schema.rbからデータベースを作成する。
  • rails db:seedが最後に実行される。

つまり、マイグレーションファイルの中身は一切読み込まずにデータベースを削除してから作り直している。

rails db:migrate:reset

  • DBをcreateした後にrails db:migrateが実行される。
  • rails db:seedは実行されない。

どっちを使う?

大抵の場合は、rails db:migrate:resetをした後にrails db:seedを実行すればいい。