设置unique_constraint Ecto

时间:2015-09-04 12:44:42

标签: elixir phoenix-framework ecto

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

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"

我做错了什么?

1 个答案:

答案 0 :(得分:12)

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

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

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