gpt4 book ai didi

mysql - Rails + Heroku : A foreign key constraint fails

转载 作者:行者123 更新时间:2023-11-29 11:19:20 25 4
gpt4 key购买 nike

我试图在 Heroku 服务器上为 Rails 项目植入 MySQL 数据库,但收到此错误:

ActiveRecord::InvalidForeignKey: Mysql2::Error: Cannot add or update a child row: a foreign key constraint fails (heroku_b08bb4ad8dfb726.posts, CONSTRAINT fk_rails_5b5ddfd518 FOREIGN KEY (user_id) REFERENCES users (id)): INSERT INTO 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')

令人惊讶的是,我在我的开发环境中没有收到此错误。

我的种子文件的摘录如下所示:

# Creating Users here

Category.create!([
{ id: 1, name: "Category"},
])

Post.create!([
{ id: 1, title: "Title", description: "Desc", user_id: "1", category_id: "1" },
])

发布模型:

class Post < ApplicationRecord
belongs_to :user
belongs_to :category
has_many :comments
validates :title, :description, presence: true
end

类别模型:

class Category < ApplicationRecord
has_many :posts
end

如果您需要更多代码片段,请在评论中告诉我。非常感谢您对这个问题提出的任何想法。

最佳答案

您还需要在seed.rb中创建用户

约束失败,因为您没有 user在您的数据库中使用 id = 1

将其添加到您的种子文件中

user = User.create(
# user attributes like `name`
)

Post.create!([
{ id: 1, title: "Title", description: "Desc", user_id: user.id, category_id: "1" },
])

此外,我建议不要对 user_id 之类的值进行硬编码你应该使用 firstlast或者随机记录以避免约束失败

关于mysql - Rails + Heroku : A foreign key constraint fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39200346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com