erlang_migrate_driver behaviour (erlang_migrate v0.2.2)

View Source

Behaviour definition for erlang_migrate database drivers. Implement all callbacks to add support for a new database.

Summary

Callbacks

current_version/2

-callback current_version(Conn :: term(), Table :: binary()) ->
                             {ok, integer() | undefined, boolean()} | {error, term()}.

drop_table/2

-callback drop_table(Conn :: term(), Table :: binary()) -> ok | {error, term()}.

ensure_table/2

-callback ensure_table(Conn :: term(), Table :: binary()) -> ok | {error, term()}.

exec_sql/2

-callback exec_sql(Conn :: term(), SQL :: binary()) -> ok | {error, term()}.

is_dirty/2

-callback is_dirty(Conn :: term(), Table :: binary()) -> {ok, boolean()} | {error, term()}.

lock/3

-callback lock(Conn :: term(), LockId :: integer(), TimeoutMs :: integer()) ->
                  ok | {error, lock_timeout} | {error, term()}.

set_version/4

-callback set_version(Conn :: term(),
                      Table :: binary(),
                      Version :: integer() | undefined,
                      Dirty :: boolean()) ->
                         ok | {error, term()}.

unlock/2

-callback unlock(Conn :: term(), LockId :: integer()) -> ok.