抢救Ecto.ConstraintError以保持迁移滚动?

问题描述 投票:1回答:1

你如何拯救一个Ecto.ConstraintError(由唯一性冲突引起 - 我对一个名为“field”的字符串属性有一个唯一索引)

这是我的代码仍然提高错误,似乎没有救援 - ecto.migration停止:

    try do
      Repo.insert(model_changeset, on_conflict: :nothing)
    rescue
      e -> IO.puts(inspect e)
    end

还有一点需要注意 - 有时model_changeset不是变更集而是结构 - 我应该总是传递变更集吗?我假设救援条款没关系 - 我应该能够根据我指定的方式挽救任何一般错误。

编辑:

这是相关的错误消息:

%Ecto.ConstraintError{constraint: "cars_field_index", message: "constraint error when attempting to insert struct:\n\n    * unique: claims_name_index\n\nIf you would like to convert this constraint into an error, please\ncall unique_constraint/3 in your changeset and define the proper\nconstraint name. The changeset has not defined any constraint.\n", type: :unique}
** (DBConnection.ConnectionError) transaction rolling back
elixir phoenix-framework ecto
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.