LoginSignup
1
0

More than 5 years have passed since last update.

railsでDBのデータを一括で削除する裏技的なやつ

Last updated at Posted at 2019-03-31

テーブルに入ってるコメントのデータを一括で消したいなーと思いながら
Comment.find(ここはコメントのid).destroy
でちまちま作業してる時にいい方法を発見したのでまとめてみる。

方法としては、マイグレーションをやり直すだけでいい。
まず,

ターミナル
$ bundle exec rails db:migrate:down VERSION=20190329162955

で消したいデータが入ってるテーブルのマイグレーションを取り消す。VERSIONはマイグレーションファイルの作成日時を入力。

ターミナル
$ rails db:migrate:status

で、マイグレーション状況を確認。

ターミナル
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20190325124958  Devise create users
   up     20190325135456  Create lectures
   up     20190325135509  Create circles
  down    20190329162955  Create comments

消したいマイグレーションファイルがdownになってればOK。

ここで、

ターミナル
$ bundle exec rails db:migrate:up VERSION=(downしたマイグレーションファイルと同じ)

これで、

ターミナル
Status   Migration ID    Migration Name
--------------------------------------------------
   up     20190325124958  Devise create users
   up     20190325135456  Create lectures
   up     20190325135509  Create circles
   up     20190329162955  Create comments

upになってれば成功!

これでテーブルの中に入っていたデータが全部消せてる。

サンプルユーザーとか、投稿機能で試しに打ち込んだデータをまとめて消せるのですごく便利だなーーと感動。。。(正しい処理なのか不明だけど笑)

消えてるというよりは、カラムを一回外して、また別のとこに付け直してるイメージだから、繋がりが切れただけでデータ自体はデータベースに残ってるのかな?

このペースで開発頑張っていこう。

追記:この処理がダメなのか大丈夫なのか、どなたか助言していただけると幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0