Ecto SQL v3.4.4 Ecto.Adapter.Migration behaviour View Source

Specifies the adapter migrations API.

Link to this section Summary

Types

All migration commands

A struct that represents a table or index in a database schema.

All commands allowed within the block passed to table/2

Callbacks

Executes migration commands.

Locks the migrations table and emits the locked versions for callback execution.

Checks if the adapter supports ddl transaction.

Link to this section Types

Specs

adapter_meta() :: Ecto.Adapter.adapter_meta()

Specs

command() ::
  raw ::
  String.t()
  | {:create, Ecto.Migration.Table.t(), [table_subcommand()]}
  | {:create_if_not_exists, Ecto.Migration.Table.t(), [table_subcommand()]}
  | {:alter, Ecto.Migration.Table.t(), [table_subcommand()]}
  | {:drop, Ecto.Migration.Table.t()}
  | {:drop_if_exists, Ecto.Migration.Table.t()}
  | {:create, Ecto.Migration.Index.t()}
  | {:create_if_not_exists, Ecto.Migration.Index.t()}
  | {:drop, Ecto.Migration.Index.t()}
  | {:drop_if_exists, Ecto.Migration.Index.t()}

All migration commands

Specs

A struct that represents a table or index in a database schema.

These database objects can be modified through the use of a Data Definition Language, hence the name DDL object.

Specs

table_subcommand() ::
  {:add, field :: atom(), type :: Ecto.Type.t() | Ecto.Migration.Reference.t(),
   Keyword.t()}
  | {:add_if_not_exists, field :: atom(),
     type :: Ecto.Type.t() | Ecto.Migration.Reference.t(), Keyword.t()}
  | {:modify, field :: atom(),
     type :: Ecto.Type.t() | Ecto.Migration.Reference.t(), Keyword.t()}
  | {:remove, field :: atom(),
     type :: Ecto.Type.t() | Ecto.Migration.Reference.t(), Keyword.t()}
  | {:remove, field :: atom()}
  | {:remove_if_exists, type :: Ecto.Type.t() | Ecto.Migration.Reference.t()}

All commands allowed within the block passed to table/2

Link to this section Callbacks

Link to this callback

execute_ddl(adapter_meta, command, options)

View Source

Specs

execute_ddl(adapter_meta(), command(), options :: Keyword.t()) ::
  {:ok, [{Logger.level(), Logger.message(), Logger.metadata()}]}

Executes migration commands.

Link to this callback

lock_for_migrations(adapter_meta, arg2, options, fun)

View Source

Specs

lock_for_migrations(adapter_meta(), Ecto.Query.t(), options :: Keyword.t(), fun) ::
  result
when fun: (Ecto.Query.t() -> result), result: var

Locks the migrations table and emits the locked versions for callback execution.

It returns the result of calling the given function with a list of versions.

Link to this callback

supports_ddl_transaction?()

View Source

Specs

supports_ddl_transaction?() :: boolean()

Checks if the adapter supports ddl transaction.