Spec-Zone.ru › Phoenix

Типы Duration с Postgrex

Исходный код

Начиная с Ecto 3.12.0, Ecto поддерживает тип :duration, который сопоставляется со структурой Duration в Elixir (доступна начиная с Elixir 1.17).

Один из естественных вариантов использования — тип interval в Postgres. Исторически Postgrex загружает интервалы из базы данных в пользовательскую структуру Postgrex.Interval. С появлением Duration теперь можно выбрать один из двух вариантов. Выполните следующие шаги, чтобы включить сопоставление с Duration.

  1. Определите миграцию
create table("movies") do
  add :running_time, :interval
end
  1. Определите схему
defmodule Movie do
  use Ecto.Schema

  schema "movies" do
    field :running_time, :duration
  end
end
  1. Определите пользовательский модуль типа Postgrex и укажите, что интервалы следует декодировать в Duration
# Inside lib/my_app/postgrex_types.ex

Postgrex.Types.define(MyApp.PostgrexTypes, [], interval_decode_type: Duration)
  1. Настройте Ecto, добавив модуль типа Postgrex в конфигурацию
config :my_app, MyApp.Repo, types: MyApp.PostgresTypes
← Предыдущая страница Сопоставление и проверка данных
Следующая страница → Динамические запросы

Пакет Hex Предварительный просмотр Hex (текущий файл) Просмотреть llms.txt Скачать версию ePub

Создано с помощью ExDoc (v0.40.2) для языка программирования Elixir

© 2014 Chris McCord
Licensed under the MIT License.
https://ecto.hexdocs.pm/duration-types-with-postgrex.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API