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, constraint fk_rails_5b5ddfd518 foreign key (user_id) references users (id)): insert posts (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

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -