Elixir 设置唯一的_约束
我有一个带有电子邮件字段的用户模型。现在我想让它独一无二,因此,根据文档,我需要申请:Elixir 设置唯一的_约束,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我有一个带有电子邮件字段的用户模型。现在我想让它独一无二,因此,根据文档,我需要申请: cast(user, params, ~w(email), ~w()) |> unique_constraint(:email) 此外,我应该在迁移中定义唯一索引: create unique_index(:users, [:email]) 问题是,当我尝试在迁移中定义此项,同时添加更多字段时,它不起作用,现在我尝试使用此create unique_index(:users,[:email])定义迁
cast(user, params, ~w(email), ~w())
|> unique_constraint(:email)
此外,我应该在迁移中定义唯一索引:
create unique_index(:users, [:email])
问题是,当我尝试在迁移中定义此项,同时添加更多字段时,它不起作用,现在我尝试使用此create unique_index(:users,[:email])
定义迁移,但它创建了一个错误:
[info] create index users_email_index
** (Postgrex.Error) ERROR (unique_violation): could not create unique index "users_email_index"
我做错了什么?当表中已违反唯一约束时,可能会发生这种情况 请检查您的用户表中是否没有重复的电子邮件地址
您可以运行
mix do exto.drop、exto.create、exto.migrate
删除并重新创建数据库和表。Postgres的实际错误响应是什么?您发布的是postgrex图书馆的,谢谢。应该是这样的,因为在执行您的建议之后,数据库被清理了,现在它正在工作。