Just do IT

思うは招く

railsのコンソールでデータベース情報を削除する方法

やりたいこと

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 が実行される。