use*_*621 4 elixir phoenix-framework
我有两个模型:用户和组.它们是通过连接表关联的多对多.当我尝试删除用户(或组)时,它会引发此错误:
尝试删除模型时出现**(Ecto.ConstraintError)约束错误:
* foreign_key: groups_user_id_key
Run Code Online (Sandbox Code Playgroud)
如何删除任何父模型?
mic*_*ala 10
数据库将引发此类错误,因为连接表仍保留对您尝试删除的用户/组的引用.这个问题有多种解决方案:
on_delete: :delete_all在组/用户架构中为联接模型关联设置选项ON DELETE CASCADE通过外键约束定义中的迁移来设置数据库中的选项references(table, on_delete: :delete_all).你可以找出外生文档中详细了解此位置:http://hexdocs.pm/ecto/Ecto.Schema.html#has_many/3这里:http://hexdocs.pm/ecto/Ecto.Migration.html #引用/ 2