Bardo.DBInterface (Bardo v0.1.0)
View SourceDatabase interface for Bardo.
This module provides a wrapper around the configured database adapter, allowing for seamless switching between different storage backends.
Usage
In your code, instead of directly calling Bardo.DB or Bardo.DBPostgres,
use this module, which will automatically route calls to the configured adapter:
# Read a value
value = Bardo.DBInterface.read(id, :experiment)
# Write a value
:ok = Bardo.DBInterface.write(value, :experiment)Configuration
In your config/config.exs:
# For ETS storage:
config :bardo, :db, adapter: Bardo.DB
# For PostgreSQL storage:
config :bardo, :db, adapter: Bardo.DBPostgres
Summary
Functions
Get the configured database adapter.
Create a backup of the database.
Delete a value from the database.
Fetch a value from the database.
List all values of a given type.
Read a value from the database.
Store a value in the database.
Write a value to the database.
Functions
Get the configured database adapter.
Create a backup of the database.
Parameters
- backup_path: Directory to store the backup (default: "backups")
Returns
on success, {:error, reason} on failure.
Delete a value from the database.
Parameters
- id: Unique identifier for the data
- type: Type of data to delete (e.g., :experiment, :population, :genotype)
Returns
:ok on success, {:error, reason} on failure.
Fetch a value from the database.
Parameters
- id: Unique identifier for the data
- type: Type of data to read (e.g., :experiment, :population, :genotype)
Returns
on success, {:error, reason} on failure.
List all values of a given type.
Parameters
- type: Type of data to list (e.g., :experiment, :population, :genotype)
Returns
List of values on success, [] on failure.
Read a value from the database.
Parameters
- id: Unique identifier for the data
- type: Type of data to read (e.g., :experiment, :population, :genotype)
Returns
The value if found, nil otherwise.
Store a value in the database.
Parameters
- type: Type of data being stored (e.g., :experiment, :population, :genotype)
- id: Unique identifier for the data
- value: The data to store
Returns
:ok on success, {:error, reason} on failure.
Write a value to the database.
Parameters
- value: The value to store (must have an :id field in its data map)
- table: The table/type to write to
Returns
:ok on success, {:error, reason} on failure.