DBのリセット

[DBのリセット方法]


DBをリセットする主なコマンドは、以下の2つ!!

[rails db:reset] ([rails db:drop db:setup]と同義。)
今までのデータベースを初期化して、[db/seeds.rb]ファイルを使用して初期データを作成。

[db/schema.rb]ファイルを元にデータベースを作成。(マイグレーションファイルに変更を加えてもその変更内容が反映されない。)


[rails db:migrate:reset]
今までのデータベースを削除した後に、マイグレーションファイルを古い順から実行する。


両者の使い分け
マイグレーションファイルの内容を変更せずに、データベースを削除し[db/seeds.rb]ファイルに記載の初期データを投入したい場合は、[rails db:reset]

マイグレーションファイルの内容を変更して、データベースを削除したい場合は、(マイグレーションファイルの状態がupの状態でもマイグレーションファイルを編集して実行できる{DBを削除して、rails db:migrateを1から実行するようなイメージ})[rails db:migrate:reset]


※注意
誤った内容で記載してしまったマイグレーションファイルを実行してしまった場合は、[rails db:rollback]でロールバックし内容を訂正する。(実行してしまったマイグレーションファイルをそのまま訂正して、[rails db:migrate]してもrails は、1度実行したマイグレーションファイルだと認識する為。)
共同開発などしている時に実行したマイグレーションファイルを訂正する時は、ロールバックせずに新しい内容でマイグレーションファイルを作成し、[rails db:migrate]する。(ロールバックなどすると他の開発者に影響を与えてしまう可能性がある為。)