romenigld

romenigld

Are not showing erros of the unique index constraint

I am trying to show the error message and test the unique index
I create the index on the produtcs table:
create unique_index(:products, [:name])

on the schema I put:
|> unique_constraint(:name, name: :products_name_index)
also used:
|> unique_constraint(:name)
but it isn’t showing the error on the liveview and tests.
When I try to add by iex:

Products.create_product(prod)
2022-06-25 02:08:30.181 CEST [38686] ERROR:  duplicate key value violates unique constraint "products_name_index"
        2022-06-25 02:08:30.181 CEST [38686] DETAIL:  Key (name)=(water) already exists.
                                                                                        2022-06-25 02:08:30.181 CEST [38686] STATEMENT:  INSERT INTO "products" ("description","name","price","size","inserted_at","updated_at","id") VALUES ($1,$2,$3,$4,$5,$6,$7)
                                                 [debug] QUERY ERROR db=2.0ms queue=2.1ms idle=1179.5ms
INSERT INTO "products" ("description","name","price","size","inserted_at","updated_at","id") VALUES ($1,$2,$3,$4,$5,$6,$7) ["water 1l", "water", 5, "small", ~N[2022-06-25 00:08:30], ~N[2022-06-25 00:08:30], <<38, 38, 232, 141, 234, 198, 71, 215, 176, 145, 70, 194, 33, 70, 125, 209>>]
↳ :erl_eval.do_apply/6, at: erl_eval.erl:685
{:error,
 #Ecto.Changeset<
   action: :insert,
   changes: %{
     description: "water 1l",
     name: "water",
     price: %Money{amount: 5, currency: :BRL},
     size: "small"
   },
   errors: [
     name: {"has already been taken",
      [constraint: :unique, constraint_name: "products_name_index"]}
   ],
   data: #FoodOrder.Products.Product<>,
   valid?: false
 >}

It works but it is not showing on the liveview error_tag and when I test.
The others validation is showing like the can’t be blank.
What do I need to do?

Marked As Solved

romenigld

romenigld

I saw the error now it was the last {:noreply, socket} on the handle_event("save", ....)

I removed and worked.
thank you for reply @benwilson512

Where Next?

Popular in Questions Top

joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

Other popular topics Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54921 245
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49084 226
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

We're in Beta

About us Mission Statement