技術系ブログ

とにかく小ネタで

rails db:seed バリデーションエラー

seedファイルを書いて、rails db:seedしたらタイトル通りのエラーになった。
rails db:resetのみでも解決しなかった。
以下解決手順

$ rails db:drop
$ rails db:create
$ rails db:schema:load
$ rails db:seed
bin/rails db:resetコマンドは、データベースをdropして再度設定します。このコマンドはrails db:drop db:setupと同等です。

Active Record マイグレーション - Railsガイド

rails db:reset からcreateで解決せずに、順番にdrop,create,shema:load,seedで解決した理由がよくわかりませんが、うまくは行きます。
参考:

rake db:schema:load の挙動について - Qiita

Railsの rake db コマンドリスト - Qiita

rails db:migrate:resetできなかったのでrails db:resetした - Qiita

rake db:seedでActiveRecord::RecordInvalid: Validation failedって怒られたとき - Qiita