繁体   English   中英

发生冲突时,不会更新回默认值

[英]On conflict not updating back to default values

我有一个这样的用户表

create table(:users) do
  add(:email, :citext)
  add(:email_confirmation_token, :string)
  add(:email_confirmed_at, :utc_datetime)
  add(:deleted_at, :utc_datetime)

  timestamps()
end

我有User架构为

schema "users" do
  field(:email, :string)
  field(:deleted_at, :utc_datetime)
  field(:email_confirmed_at, :utc_datetime)
  field(:email_confirmation_token, :string, default: ExApi.Utils.Random.string())

  timestamps()
end

现在,如果我插入带有on_conflict选项的记录,我想重置deleted_at但Deleted_at永远不会传递到变更集。 我使用以下代码行

attrs = %{"email" => "tanweer.shahzaad@gmail.com", "deleted_at" => nil}
cs = %User{} |> User.changeset(attrs)
ExApi.Repo.insert(cs, on_conflict: :replace_all, conflict_target: :email)

任何将重置deleted_at解决方法将不胜感激。

问题:如果已经设置了deleted_at ,我想在插入时将其重置为nil

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM