Spec-Zone.ru › Phoenix

Ecto.Adapter.Schema поведение

Исходный код

Определяет API схемы, необходимый адаптерам.

Краткое описание

Типы

adapter_meta()

Тип-прокси для метаданных адаптера

constraints()
fields()
filters()
on_conflict()
options()
placeholders()
returning()
schema_meta()

Поля метаданных Ecto.Schema

Обратные вызовы

autogenerate(field_type)

Вызывается для автоматической генерации значения id/embed_id/binary_id.

delete(adapter_meta, schema_meta, filters, returning, options)

Удаляет одну структуру по заданным фильтрам.

insert(adapter_meta, schema_meta, fields, on_conflict, returning, options)

Добавляет одну новую структуру в хранилище данных.

insert_all(adapter_meta, schema_meta, header, list, on_conflict, returning, placeholders, options)

Добавляет несколько записей в хранилище данных.

update(adapter_meta, schema_meta, fields, filters, returning, options)

Обновляет одну структуру по заданным фильтрам.

Типы

adapter_meta()Исходный код

@type adapter_meta() :: Ecto.Adapter.adapter_meta()

Тип-прокси для метаданных адаптера

constraints()Исходный код

@type constraints() :: Keyword.t()

fields()Исходный код

@type fields() :: Keyword.t()

filters()Исходный код

@type filters() :: Keyword.t()

on_conflict()Исходный код

@type on_conflict() ::
  {:raise, list(), []}
  | {:nothing, list(), [atom()]}
  | {[atom()], list(), [atom()]}
  | {Ecto.Query.t(), list(), [atom()]}

options()Исходный код

@type options() :: Keyword.t()

placeholders()Исходный код

@type placeholders() :: [term()]

returning()Исходный код

@type returning() :: [atom()]

schema_meta()Исходный код

@type schema_meta() :: %{
  autogenerate_id:
    {schema_field :: atom(), source_field :: atom(), Ecto.Type.t()},
  context: term(),
  prefix: binary() | nil,
  schema: atom(),
  source: binary()
}

Поля метаданных Ecto.Schema

Обратные вызовы

autogenerate(field_type)Исходный код

@callback autogenerate(field_type :: :id | :binary_id | :embed_id) :: term() | nil

Вызывается для автоматической генерации значения id/embed_id/binary_id.

Возвращает сгенерированное значение или nil, если оно должно быть сгенерировано в хранилище, либо вызывает исключение, если эта возможность не поддерживается.

delete(adapter_meta, schema_meta, filters, returning, options)Исходный код

@callback delete(adapter_meta(), schema_meta(), filters(), returning(), options()) ::
  {:ok, fields()} | {:invalid, constraints()} | {:error, :stale}

Удаляет одну структуру по заданным фильтрам.

Хотя filters может быть любым столбцом записи, ожидается, что в качестве фильтра будет указан как минимум первичный ключ (или любой другой ключ, уникально идентифицирующий существующую запись). Поэтому, если запись, соответствующая заданным фильтрам, отсутствует, возвращается {:error, :stale}.

insert(adapter_meta, schema_meta, fields, on_conflict, returning, options)Исходный код

@callback insert(
  adapter_meta(),
  schema_meta(),
  fields(),
  on_conflict(),
  returning(),
  options()
) ::
  {:ok, fields()} | {:invalid, constraints()}

Добавляет одну новую структуру в хранилище данных.

Автоматическая генерация

Первичный ключ будет автоматически включён в returning, если поле имеет тип :id или :binary_id и разработчик не задал значение либо адаптер не сгенерировал его.

insert_all(adapter_meta, schema_meta, header, list, on_conflict, returning, placeholders, options)Исходный код

@callback insert_all(
  adapter_meta(),
  schema_meta(),
  header :: [atom()],
  [[{atom(), term() | {Ecto.Query.t(), list()}}]],
  on_conflict(),
  returning(),
  placeholders(),
  options()
) :: {non_neg_integer(), [[term()]] | nil}

Добавляет несколько записей в хранилище данных.

Если пользователь передаст Ecto.Query в качестве одного из значений поля, оно будет передано адаптеру в виде кортежа формата {query, params}.

update(adapter_meta, schema_meta, fields, filters, returning, options)Исходный код

@callback update(
  adapter_meta(),
  schema_meta(),
  fields(),
  filters(),
  returning(),
  options()
) ::
  {:ok, fields()} | {:invalid, constraints()} | {:error, :stale}

Обновляет одну структуру по заданным фильтрам.

Хотя filters может быть любым столбцом записи, ожидается, что в качестве фильтра будет указан как минимум первичный ключ (или любой другой ключ, уникально идентифицирующий существующую запись). Поэтому, если запись, соответствующая заданным фильтрам, отсутствует, возвращается {:error, :stale}.

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

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

© 2014 Chris McCord
Licensed under the MIT License.
https://ecto.hexdocs.pm/Ecto.Adapter.Schema.html

Spec-Zone.ru

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