テーブルに入ってるコメントのデータを一括で消したいなーと思いながら
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になってれば成功!
これでテーブルの中に入っていたデータが全部消せてる。
サンプルユーザーとか、投稿機能で試しに打ち込んだデータをまとめて消せるのですごく便利だなーーと感動。。。(正しい処理なのか不明だけど笑)
消えてるというよりは、カラムを一回外して、また別のとこに付け直してるイメージだから、繋がりが切れただけでデータ自体はデータベースに残ってるのかな?
このペースで開発頑張っていこう。
追記:この処理がダメなのか大丈夫なのか、どなたか助言していただけると幸いです。