Ran diese Migration, um einen eindeutigen IndexPhoenix Ecto Einzigartige Validierung: Constraint-Fehler beim struct
def change do
create unique_index(:users, [:account_number])
end
Und dann im Modell auf Kontonummer haben einzufügen versuchen:
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:first_name, :last_name, :email, :phone, :city, :postal_code, :country, :login_count, :last_login, :active, :account_number, :password])
|> validate_required([:first_name, :last_name, :email, :phone, :city, :postal_code, :country, :account_number])
|> validate_length(:password, min: 8, max: 100)
|> validate_format(:email, ~r/@/)
|> unique_constraint(:email)
|> unique_constraint(:account_number)
|> put_pass_hash()
end
Erzeugt diesen Fehler :
** (Ecto.ConstraintError) constraint error when attempting to insert struct:
* unique: users_account_number_index
If you would like to convert this constraint into an error, please
call unique_constraint/3 in your changeset and define the proper
constraint name. The changeset has not defined any constraint.
PostgreSQL 9.6
Phoenix 1.2.4
Ecto 2.1.4
Was fehlt mir?
Schlüssel mit dem
message
Option hinzufügen 'Die changeset definiert hat keine constraint.' seltsam. Sind Sie sicher, dass diese 'changeset'-Funktion im 'User'-Modell ist und Sie ein Changeset einfügen, das von dieser Funktion zurückgegeben wird? – DogbertUnd dass alles okey-dokey kompiliert? –