dawdle_db v0.5.0 DawdleDB.Migration
Utilities for managing the DawdleDB events table and notification related triggers.
Examples
defmodule MyApp.DawdleDBSetup do
use Ecto.Migration
import DawdleDB.Migration
def up do
create_watcher_events_table()
update_notify("users", [:insert, :update, :delete])
end
def down do
remove_notify("users", [:insert, :update, :delete])
drop_watcher_events_table()
end
end
Link to this section Summary
Functions
Creates the DawdleDB watcher events table.
Drops the DawdleDB watcher events table.
Remove event notification function/trigger from a table.
Add event notification function/trigger to a table.
Link to this section Types
Link to this type
override()
Link to this type
table()
table()
table() :: binary()
table() :: binary()
Link to this section Functions
Link to this function
create_watcher_events_table()
create_watcher_events_table()
create_watcher_events_table() :: :ok
create_watcher_events_table() :: :ok
Creates the DawdleDB watcher events table.
This table is necessary for DawdleDB to manage events.
Link to this function
drop_watcher_events_table()
drop_watcher_events_table()
drop_watcher_events_table() :: :ok
drop_watcher_events_table() :: :ok
Drops the DawdleDB watcher events table.
Link to this function
remove_notify(table, actions)
remove_notify(table, actions)
remove_notify(table(), DawdleDB.Event.action() | [DawdleDB.Event.action()]) ::
:ok
remove_notify(table(), DawdleDB.Event.action() | [DawdleDB.Event.action()]) :: :ok
Remove event notification function/trigger from a table.
Examples
remove_notify("my_table", [:insert])
Link to this function
update_notify(table, actions, overrides \\ [])
update_notify(table, actions, overrides \\ [])
update_notify(table(), [DawdleDB.Event.action()], [override()]) :: :ok
update_notify(table(), [DawdleDB.Event.action()], [override()]) :: :ok
Add event notification function/trigger to a table.
To override the encoding of particular fields, provide an override with
$ITEM$
as the item to be overridden. For example, to override the encoding
of the "title" field, use: {"title", "my_encoding_function($ITEM$)"}
.
Examples
update_notify("my_table", [:insert, :update])
update_notify("other_table", [:insert], [{"title", "my_encoding_function($ITEM$)"}])