Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

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

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

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

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

keiichi24681026
rails を始めたての駆け出しエンジニア見習い大学生。 普段は大阪大学で物理学を専攻しています。プログラミング楽しいね!!
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした