Amnesia.Backup behaviour (nuamnesia v0.3.0)

This module provides a behavior to implement a backup module and helpers to use backups.

Summary

Callbacks

Close the backup if the backup is interrupted.

Close the backup.

Commit the write to the backup.

Open the backup for reading.

Open the backup for writing.

Read terms from the backup.

Write the given terms to the backup.

Functions

Create a checkpoint, see mnesia:activate_checkpoint. It's important to backup the metadata table, to avoid bugs when restoring the database.

Create a checkpoint with the given name, see mnesia:activate_checkpoint.

Install a fallback with the default backup module, see mnesia:install_fallback.

Install a fallback with the given backup module, see mnesia:install_fallback.

Install a fallback with the given backup module and options, see mnesia:install_fallback.

Restore a backup, see mnesia:restore.

Restore a backup with the given module, see mnesia:restore.

Start a backup with the default backup module, see mnesia:backup.

Start a backup of a given checkpoint, see mnesia:backup_checkpoint.

Traverse a backup, see mnesia:traverse_backup.

Traverse a backup with custom backup modules, see mnesia:traverse_backup.

Uninstall a fallback, see mnesia:uninstall_fallback.

Uninstall a fallback, see mnesia:uninstall_fallback.

Uninstall a fallback, see mnesia:uninstall_fallback.

Types

i()

@type i() :: {:module, atom()} | {:scope, :global | :local} | {:directory, String.t()}

o()

@type o() :: {:ok, any()} | {:error, any()}

r()

@type r() :: [
  {:module, atom()}
  | {:keep | :skip | :clear | :recreate, atom() | [atom()]}
  | {:default, :keep | :skip | :clear | :recreate}
]

Callbacks

abort_write(any)

@callback abort_write(any()) :: o()

Close the backup if the backup is interrupted.

close_read(any)

@callback close_read(any()) :: o()

Close the backup.

commit_write(any)

@callback commit_write(any()) :: o()

Commit the write to the backup.

open_read(any)

@callback open_read(any()) :: o()

Open the backup for reading.

open_write(any)

@callback open_write(any()) :: o()

Open the backup for writing.

read(any)

@callback read(any()) :: {:ok, any(), [any()]} | {:error, any()}

Read terms from the backup.

write(any, list)

@callback write(any(), [any()]) :: o()

Write the given terms to the backup.

Functions

checkpoint(options)

@spec checkpoint(Keyword.t()) :: {:ok, any(), [node()]} | {:error, any()}

Create a checkpoint, see mnesia:activate_checkpoint. It's important to backup the metadata table, to avoid bugs when restoring the database.

Example to backup on a file called "backup" the table Account as well the metadata table:

Amnesia.Backup.checkpoint(%{
  name: 'backup',
  max: [Database.Account, Database]
})

checkpoint(name, options)

@spec checkpoint(any(), Keyword.t()) :: {:ok, any(), [node()]} | {:error, any()}

Create a checkpoint with the given name, see mnesia:activate_checkpoint.

install(data)

@spec install(any()) :: :ok | {:error, any()}
@spec install(atom() | any()) :: :ok | {:error, any()}

Install a fallback with the default backup module, see mnesia:install_fallback.

install(module, data)

Install a fallback with the given backup module, see mnesia:install_fallback.

install(module, data, options)

@spec install(atom(), any(), i()) :: :ok | {:error, any()}

Install a fallback with the given backup module and options, see mnesia:install_fallback.

restore(data, options)

@spec restore(any(), r()) :: [atom()] | {:error, any()}

Restore a backup, see mnesia:restore.

restore(module, data, options)

@spec restore(atom(), any(), r()) :: {:atomic, [atom()]} | {:aborted, any()}

Restore a backup with the given module, see mnesia:restore.

start(data)

@spec start(any()) :: :ok | {:error, any()}

Start a backup with the default backup module, see mnesia:backup.

start(name, data)

@spec start(any(), any()) :: :ok | {:error, any()}

Start a backup of a given checkpoint, see mnesia:backup_checkpoint.

traverse(source, target, acc, fun)

@spec traverse(any(), any(), any(), ([tuple()], any() -> any())) ::
  {:ok, any()} | {:error, any()}

Traverse a backup, see mnesia:traverse_backup.

traverse(source, source_data, target, target_data, acc, fun)

@spec traverse(atom(), any(), atom(), any(), any(), ([tuple()], any() -> any())) ::
  {:ok, any()} | {:error, any()}

Traverse a backup with custom backup modules, see mnesia:traverse_backup.

uninstall()

@spec uninstall() :: :ok | {:error, any()}

Uninstall a fallback, see mnesia:uninstall_fallback.

uninstall(options)

@spec uninstall(i()) :: :ok | {:error, any()}

Uninstall a fallback, see mnesia:uninstall_fallback.

uninstall(module, options)

@spec uninstall(atom(), i()) :: :ok | {:error, any()}

Uninstall a fallback, see mnesia:uninstall_fallback.