本厚木のエンジニアブログではある

日々の開発で出たエラーや日常などいろいろ書いていくブログです。

rake db:migrate:resetとrake db:resetの使い分け 違い

railsでDBを削除したいmigrationを書き換えたから新しく反映させたい場合のときに rake db:migrate:resetとrake db:resetの違いがわからない...どうやって使い分けるかをざっくりと書ければと思います。

rake db:migrate:resetとは

rake db:migrate:reset は db/migrate/**.rb からマイグレーション
今のデータベースを削除して再度マイグレーションファイルからデータベースを作り直します。
つまり
マイグレーションファイルを書き換えて再度データベースを作り変えたいときはこちらのコマンドですかね。。
感覚としては全部破壊してrake db:migrate をしてくれている感じです。

rake db:resetとは

rake db:resetはschema.rbからデータベースが作成されます。
rake db:migrateはされないでござる

つまり
今のデータベースを一回空にしてるイメージです。
感覚としてはデータベースの項目的なものまで壊さずに、入っているデータだけ消す感じです。

まとめ

rake db:migrate:resetはマイグレーション書き換えたりadd_columnした時、反映させたいときに使いまする
↑migration書き換えた時はこっちですなあ

rake db:resetはとりあえず中身だけ消す感じです笑
↑DBの不要なデータを削除するときとか

お役に立てず毎度申し訳ありません。