Ecto:具有唯一约束的无模式many_to_many

时间:2016-12-01 17:17:18

标签: many-to-many elixir ecto

在使用many-to-many table定义的unique_index关系中插入重复元素时,从Postgres传播错误的正确等待时间是什么:

schema "books" do
  ...
  many_to_many :authors, Author, join_through: "books_authors"
end

preload(book, :authors)
|> change
|> put_assoc(:authors, authors)
|> unique_constraint(:authors, name: :books_authors_book_id_author_id_index)

所以这会引发错误:

** (Postgrex.Error) ERROR (unique_violation): duplicate key value violates unique constraint "books_authors_book_id_author_id_index"

可能的解决方案是使用BookAuthor架构,但有没有办法让它以无模式方式工作?

0 个答案:

没有答案