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_5b5ddfd518foreign 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