mysql - Rails + Heroku: A foreign key constraint fails -
i trying seed mysql database rails project on heroku server , getting error:
activerecord::invalidforeignkey: mysql2::error: cannot add or update child row: foreign key constraint fails (
heroku_b08bb4ad8dfb726
.posts
, constraintfk_rails_5b5ddfd518
foreign key (user_id
) referencesusers
(id
)): insertposts
(id
,title
,description
,user_id
,category_id
,created_at
,updated_at
) values (1, 'title', 'desc', 1, 1, '2016-08-29 06:53:04', '2016-08-29 06:53:04')
surprisingly, not error in development environment.
the extract of seed file looks this:
# creating users here category.create!([ { id: 1, name: "category"}, ]) post.create!([ { id: 1, title: "title", description: "desc", user_id: "1", category_id: "1" }, ])
post model:
class post < applicationrecord belongs_to :user belongs_to :category has_many :comments validates :title, :description, presence: true end
category model:
class category < applicationrecord has_many :posts end
please let me know if need more code snippets in comments. thank ideas on issue.
you need create user in seed.rb
constraint failing because don't have user
in database id = 1
add in seed file
user = user.create( # user attributes `name` ) post.create!([ { id: 1, title: "title", description: "desc", user_id: user.id, category_id: "1" }, ])
also suggest instead of hardcoding values user_id
should use first
or last
or random record avoid constraint failure
Comments
Post a Comment