0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

$rails db:seed で、重複したデータが入ってしまった時の対処法

Posted at

はじめに

こんにちは!Webエンジニアを目指す大学生のゆーとです :)

今回はただなんとなくで使っていた$rails db:seedでDBのテーブルに入っている初期データが重複するという事態が発生してしまったので、その原因と解決した方法を自分の為のメモということで書かせて頂きます!

もし、認識や対処方法が間違っている場合は指摘して下さると幸いです🙇‍♀️

初期値のデータが重複してしまった

ポートフォリオ実装中に初期データを入れる為、seedファイルにデータを記入して$rails db:seedした後、スペルミスがあることが判明。 
    ⬇️
データ記入済みのseedファイルのスペルミスを直した後、その修正を反映させる為にもう一度$rails db:seedをしてみると
スペルミスを含めた3つ分のデータと修正箇所含めた3つ分のデータ合わせて6つのデータがテーブルに格納されてしまった。

原因

原因としては自分のseedファイル、$rails db:seedに対する認識の誤りであった。

✖︎ 一度データをテーブルに格納したとしても、後から更新という形でseedファイルの内容を変更しデータを修正することが出来ると考えていた
◯ 一度$rails db:seedでテーブルに格納したデータはすでにデータベースに反映されており、seedファイルに変更を加えるて$rails db:seedするともう一度全部のデータが格納されてしまう

対策

対策としては一度格納したデータを全てリセットして、seedファイル修正後に再度$rails db:seedをすることが有効な方法。

  • 以下のコマンドでテーブルからデータをリセットする(削除する)
$rails db:migrate:reset

⬇️

  • seedファイルを修正

⬇︎

  • 以下のコマンドでデータを再度格納
$ rails db:seed

まとめ

なんとなくで使っていると今回のようなトラブルに遭遇してしまうので、やはり公式ドキュメント等でしっかり網羅的に理解することは大切だなと感じました。

今後も夢であるWebエンジニアになる為に積極的に学んでいきたいと思います❗️❗️

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?