Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@keiichi24681026

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

テーブルに入ってるコメントのデータを一括で消したいなーと思いながら
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になってれば成功!

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

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

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

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?