Rails Diary

プログラミングの学習記録です。

seeds.rbを編集して再反映させたいとき

seeds.rbの削除

seeds.rbの反映後に編集をして初期データに変更を加えたい場合、一度リセットした後再度反映させないと二重登録になってしまう。

データベースのリセット

rails db:migrate:reset

再度反映

rails db:seed
rails db:migrate:resetは何をしているのか

rails db:drop(DBの削除)

rails db:create(DBの作成)

rails db:migrateマイグレーションファイルの反映)

DBの初期化をしている。DBには何も入っていない状態
開発の初期段階で一度DBを空にしたい時などに使う

ちなみにrails db:resetは?

rails db:drop(DBの削除)

rails db:setup
・db:create(DBの作成)
・db:schema:load(スキーマからテーブルの作成)
・db:seed(初期データの登録)

今の段階の理解として

db:migrate:resetマイグレーションファイルを利用してDBを作成しているのに対し、db:resetスキーマファイルを利用してテーブルを作成している点。もしマイグレーションファイルを編集していたとしても、db:resetでは反映されない。

参考にしたサイト

RailsでDBに登録した時間が日本時間にならない

Rails db:seed二重登録解除 - Qiita

【rails db:migrate:reset】とは - Qiita

rails db:reset は何をしているのか - Just do IT