11

我有一个带有电子邮件字段的用户模型。现在我想让它独一无二,所以,根据文档,我需要申请:

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"

我究竟做错了什么?

4

1 回答 1

14

当您的表中已经违反了唯一约束时,可能会发生这种情况。

请检查您的用户表中没有重复的电子邮件地址。

您可以运行mix do ecto.drop, ecto.create, ecto.migrate以删除和重新创建数据库和表。

于 2015-09-04T13:03:17.943 回答