20211008のMySQLに関する記事は1件です。

【エラー】Mysql2::Error: Duplicate entry ' ' for key ' '

環境 Ruby 3.0.2 Rails 6.1.4.1 omniauth-google-oauth2 1.0.0 devise 4.8.0 状況 Rspecを実行した際にエラーを吐かれた ActiveRecord::RecordNotUnique: Mysql2::Error: Duplicate entry '100000000000000000000' for key 'users.index_users_on_uid' spec/factories/users.rb FactoryBot.define do factory :user do name { 'test employee' } sequence(:email) { |n| "tester#{n}@example.com" } provider { 'google_oauth2' } uid { '100000000000000000000' } end end 解決法 uidがかぶっていたのでエラーが出ていた。sequenceを使って一意にする spec/factories/users.rb FactoryBot.define do factory :user do name { 'test employee' } sequence(:email) { |n| "tester#{n}@example.com" } provider { 'google_oauth2' } sequence(:uid) { |n| "1#{n}00000000000000000000" } end end
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む