# mix.exs
defp deps do
[{:phoenix, "~> 1.1.4"},
{:postgrex, ">= 0.0.0"},
{:phoenix_ecto, "~> 3.0.0-rc"},
{:gettext, "~> 0.9"},
...
]
end
Zainstalowana wersja ekto jest "2.0.0-rc.5"
insert_all nie tworzy automatycznie generowane inserted_at z ekto 2,0
iex(1)> categories = [%{name: "stackoverflow", url: "stackoverflow.com"}]
iex(2)> App.Repo.insert_all App.Category, categories
** (Postgrex.Error) ERROR (not_null_violation): null value in column "inserted_at" violates not-null constraint
table: categories
column: inserted_at
Failing row contains (1, stackoverflow, stackoverflow.com, null, null).
(ecto) lib/ecto/adapters/sql.ex:176: Ecto.Adapters.SQL.query!/5
(ecto) lib/ecto/adapters/sql.ex:350: Ecto.Adapters.SQL.insert_all/8
(ecto) lib/ecto/repo/schema.ex:42: Ecto.Repo.Schema.do_insert_all/6
iex(2)>
Od docs, wydawało się, że został wygenerowany automatycznie inserted_at
. Czy muszę ręcznie wykonać tę część?
schema "categories" do
field :name, :string
field :url, :string
timestamps
end
Dziękuję. Wystąpił błąd dla 'updated_at' teraz. Naprawiono to za pomocą sugerowanego powyżej. –
: typ datetime w migracji jest przestarzały, użyj: utc_datetime lub: naive_datetime zamiast – arcseldon