やりたいこと
rails c
でrailsコンソールに入り、データベースを削除したい。 サンプルのデータを作りすぎたので、ちょっと減らしたい。 条件を指定して削除なんかもしたい。
方法
destroyを使う
データをすべて消す場合。
モデル名.destroy_all
たとえば、Userというモデルクラスを作り、そのデータを消したいなら。
User.destroy_all
その後、
User.all
で確認してもデータは消え去っている。
id指定で削除
User.find(id).destroy
条件指定で削除
たとえば、Bookモデルのidで範囲を指定して削除したい場合。
Book.where(id:1..70).destroy_all
destroyとdeleteの違いは以下を参考に。
【Rails入門】データを削除する方法(destroy/delete)を確認しよう | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
マイグレーションリセットをする
railsのコンソール内での実行ではないが、そもそもデータベースごとリセットしてしまう方法もある。
rails db:migrate:reset
これをすると、テーブルが一旦削除され、db:migrate が実行される。