我有一个带有电子邮件字段的用户模型。现在我想使其独一无二,因此,根据文档,我需要申请:
cast(user, params, ~w(email), ~w())
|> unique_constraint(:email)
另外,我应该在迁移中定义唯一索引:
create unique_index(:users, [:email])
问题在于,当我尝试在迁移中定义此内容并添加更多字段时,它无法正常工作,现在我尝试使用此create unique_index(:users, [:email])
来定义迁移并且它& #39;创建错误:
[info] create index users_email_index
** (Postgrex.Error) ERROR (unique_violation): could not create unique index "users_email_index"
我做错了什么?
答案 0 :(得分:12)
当您的表中已违反唯一约束时,可能会发生这种情况。
请检查您的用户表中是否已有重复的电子邮件地址。
您可以运行mix do ecto.drop, ecto.create, ecto.migrate
来删除并重新创建数据库和表格。