ecto_mnesia v0.8.0 Ecto.Mnesia.Adapter
Core Ecto Mnesia adapter implementation.
Summary
Functions
Automatically generate next ID for binary keys, leave sequence keys empty for generation on insert
Returns the childspec that starts the adapter process.
This method is called from Ecto.Repo.Supervisor.init/2
Deletes a record from a Mnesia database
Returns the dumpers for a given type
Ensure all applications necessary to run the adapter are started
Update all records by a Ecto.Query
Returns true when called inside a transaction
Insert Ecto Schema struct to Mnesia database
Returns the loaders for a given type
Prepares are called by Ecto before execute/6
methods
Transaction rollbacks is not fully supported
Run fun
inside a Mnesia transaction
Updates record stored in a Mnesia database
Functions
Automatically generate next ID for binary keys, leave sequence keys empty for generation on insert.
Returns the childspec that starts the adapter process.
This method is called from Ecto.Repo.Supervisor.init/2
.
Returns the dumpers for a given type.
It receives the primitive type and the Ecto type (which may be primitive as well). It returns a list of dumpers with the given type usually at the beginning.
This allows developers to properly translate values coming from the Ecto into adapter ones. For example, if the database does not support booleans but instead returns 0 and 1 for them, you could add:
def dumpers(:boolean, type), do: [type, &bool_encode/1]
def dumpers(_primitive, type), do: [type]
defp bool_encode(false), do: {:ok, 0}
defp bool_encode(true), do: {:ok, 1}
All adapters are required to implement a clause or :binary_id types, since they are adapter specific. If your adapter does not provide binary ids, you may simply use Ecto.UUID:
def dumpers(:binary_id, type), do: [type, Ecto.UUID]
def dumpers(_primitive, type), do: [type]
Callback implementation for Ecto.Adapter.dumpers/2
.
Insert Ecto Schema struct to Mnesia database.
Returns the loaders for a given type.
It receives the primitive type and the Ecto type (which may be primitive as well). It returns a list of loaders with the given type usually at the end.
This allows developers to properly translate values coming from the adapters into Ecto ones. For example, if the database does not support booleans but instead returns 0 and 1 for them, you could add:
def loaders(:boolean, type), do: [&bool_decode/1, type]
def loaders(_primitive, type), do: [type]
defp bool_decode(0), do: {:ok, false}
defp bool_decode(1), do: {:ok, true}
All adapters are required to implement a clause for :binary_id
types,
since they are adapter specific. If your adapter does not provide binary
ids, you may simply use Ecto.UUID:
def loaders(:binary_id, type), do: [Ecto.UUID, type]
def loaders(_primitive, type), do: [type]
Callback implementation for Ecto.Adapter.loaders/2
.
Prepares are called by Ecto before execute/6
methods.