ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: 错误: 表上的更新或删除违反了外键约束

2024-04-21

有一个非常相似的问题SO https://stackoverflow.com/questions/47624334/error-update-or-delete-on-table-users-violates-foreign-key-constraint-fk-rai。给出的答案如下:

先删除用户11的评论,或者更改外键,使其“on” 删除级联”模式 - 删除父级将导致自动 删除子记录

但我以为这就是目的dependent: :destroy。当您删除记录时,它会删除其关联。

我有以下内容:

class Venue < ApplicationRecord
  has_many :entrees, dependent: :destroy
end

class Entree < ApplicationRecord
  belongs_to :venue
end

我尝试以下操作:

Venue.delete_all
DELETE FROM "venues"
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR:  update or delete on table "venues" violates foreign key constraint "fk_rails_8fda228aa3" on table "entrees"

我是否错过了目的dependent: :destroy?还如果dependent: :destroy只是为了删除没有外键约束的关联,那么如何删除有外键约束的依赖项呢? Rails 有 CASCADE 选项吗?


它的工作尝试这个

ActiveRecord::Base.connection.disable_referential_integrity do
Book.destroy_all
Genre.destroy_all
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: 错误: 表上的更新或删除违反了外键约束 的相关文章

随机推荐