DigitalOcean.Database (digital_ocean v0.1.0)
Link to this section Summary
Functions
Create a new database cluster or create a database cluster from a backup.
Create a PostgreSQL connection pool for a database cluster.
Create a database for a database cluster.
Create a read-only replica.
Create a user for a database.
Delete a database cluster.
Delete a PostgreSQL connection pool.
Delete a database from a database cluster.
Delete a read-only database replica.
Delete a user from a database.
Retrieve details about a specific database cluster.
Retrieve details about a specific PostgreSQL connection pool.
Retrieve details about a specific database.
Retrieve details about a Redis eviction policy.
Retrieve details about a specific read-only database replica.
Retrieve the SQL mode for a MySQL database cluster.
Retrieve details about a specific user for a database.
Retrieve a list of database clusters.
Retrieve a list of backups for a database cluster.
Retrieve a list fo connection pools for a PostgreSQL database cluster.
Retrieve a list of databases for a database cluster.
Retrieve a list of firewall rules for a database cluster.
Retrieve a list of read-only database replicas.
Retrieve a list of users for a database.
Migrate a database cluster to a different region.
Reset the MySQL authentication method for a database user.
Resize a database cluster.
Update the eviction policy for a Redis database cluster.
Update firewall rules for a database cluster.
Update the automatic maintenance window for a database cluster.
Update the SQL mode for a MySQL database cluster.
Link to this section Functions
create(opts)
Specs
create(Keyword.t()) :: DigitalOcean.Operation.t()
Create a new database cluster or create a database cluster from a backup.
Example creating a database cluster
iex> DigitalOcean.Database.create(
...> name: "backend",
...> region: "nyc3",
...> engine: "pg",
...> size: "db-s-2vcpu-4gb",
...> num_nodes: 2
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Example creating a database cluster from a backup
iex> DigitalOcean.Database.create(
...> name: "backend",
...> region: "nyc3",
...> engine: "pg",
...> size: "db-s-2vcpu-4gb",
...> num_nodes: 2,
...> backup_restore: %{
...> database_name: "backend",
...> backup_created_at: "2019-01-31T19:25:22Z"
...> },
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
create_connection_pool(database_id, opts)
Specs
create_connection_pool(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Create a PostgreSQL connection pool for a database cluster.
Examples
iex> DigitalOcean.Database.create_connection_pool(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> name: "backend-pool",
...> mode: "transaction",
...> size: 10,
...> db: "default_db",
...> user: "doadmin"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
create_db(database_id, opts)
Specs
create_db(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Create a database for a database cluster.
Examples
iex> DigitalOcean.Database.create_db(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> name: "alpha"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
create_replica(database_id, opts)
Specs
create_replica(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Create a read-only replica.
Examples
iex> DigitalOcean.Database.create_replica(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> name: "read-nyc3-01",
...> size: "db-s-2vcpu-4gb"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
create_user(database_id, opts)
Specs
create_user(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Create a user for a database.
Examples
iex> DigitalOcean.Database.create_user(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> name: "app-01"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
delete(database_id)
Specs
delete(String.t()) :: DigitalOcean.Operation.t()
Delete a database cluster.
Examples
iex> DigitalOcean.Database.delete("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
delete_connection_pool(database_id, connection_pool_name)
Specs
delete_connection_pool(String.t(), String.t()) :: DigitalOcean.Operation.t()
Delete a PostgreSQL connection pool.
Examples
iex> DigitalOcean.Database.delete_connection_pool("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "backend-pool") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
delete_db(database_id, db_name)
Specs
delete_db(String.t(), String.t()) :: DigitalOcean.Operation.t()
Delete a database from a database cluster.
Examples
iex> DigitalOcean.Database.delete_db("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "alpha") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
delete_replica(database_id, replica_name)
Specs
delete_replica(String.t(), String.t()) :: DigitalOcean.Operation.t()
Delete a read-only database replica.
Examples
iex> DigitalOcean.Database.delete_replica("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "read-nyc3-01") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
delete_user(database_id, username)
Specs
delete_user(String.t(), String.t()) :: DigitalOcean.Operation.t()
Delete a user from a database.
Examples
iex> DigitalOcean.Database.delete_user("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "app-01") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get(database_id)
Specs
get(String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a specific database cluster.
Examples
iex> DigitalOcean.Database.get("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_connection_pool(database_id, connection_pool_name)
Specs
get_connection_pool(String.t(), String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a specific PostgreSQL connection pool.
Examples
iex> DigitalOcean.Database.get_connection_pool("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "backend-pool") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_db(database_id, db_name)
Specs
get_db(String.t(), String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a specific database.
Examples
iex> DigitalOcean.Database.get("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "alpha") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_eviction_policy(database_id)
Specs
get_eviction_policy(String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a Redis eviction policy.
Examples
iex> DigitalOcean.Database.get_eviction_policy("9cdb64e5-61e4-4b30-b711-11ef66d84558") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_replica(database_id, replica_name)
Specs
get_replica(String.t(), String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a specific read-only database replica.
Examples
iex> DigitalOcean.Database.get_replica("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "read-nyc3-01") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_sql_mode(database_id)
Specs
get_sql_mode(String.t()) :: DigitalOcean.Operation.t()
Retrieve the SQL mode for a MySQL database cluster.
Example
iex> DigitalOcean.Database.get_sql_mode("9cdb64e5-61e4-4b30-b711-11ef66d84558") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
get_user(database_id, username)
Specs
get_user(String.t(), String.t()) :: DigitalOcean.Operation.t()
Retrieve details about a specific user for a database.
Examples
iex> DigitalOcean.Database.get_user("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "app-01") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list(opts \\ [])
Specs
list(Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of database clusters.
Examples
iex> DigitalOcean.Database.list() |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_backups(database_id, opts \\ [])
Specs
list_backups(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of backups for a database cluster.
Examples
iex> DigitalOcean.Database.list_backups("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_connection_pools(database_id, opts \\ [])
Specs
list_connection_pools(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list fo connection pools for a PostgreSQL database cluster.
Examples
iex> DigitalOcean.Database.list_connection_pools("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_dbs(database_id, opts \\ [])
Specs
list_dbs(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of databases for a database cluster.
Examples
iex> DigitalOcean.Database.list_dbs("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_firewall_rules(database_id, opts \\ [])
Specs
list_firewall_rules(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of firewall rules for a database cluster.
Examples
iex> DigitalOcean.Database.list_firewall_rules("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_replicas(database_id, opts \\ [])
Specs
list_replicas(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of read-only database replicas.
Example
iex> DigitalOcean.Database.list_replicas("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
list_users(database_id, opts \\ [])
Specs
list_users(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Retrieve a list of users for a database.
Examples
iex> DigitalOcean.Database.list_users("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
migrate_to_region(database_id, opts)
Specs
migrate_to_region(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Migrate a database cluster to a different region.
Examples
iex> DigitalOcean.Database.migrate_to_region(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> region: "lon1"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
reset_user_authentication_method(database_id, username, opts)
Specs
reset_user_authentication_method(String.t(), String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Reset the MySQL authentication method for a database user.
Examples
iex> DigitalOcean.Database.reset_user_authentication_method(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> "app-01",
...> mysql_settings: %{ auth_plugin: "caching_sha2_password" }
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
resize(database_id, opts)
Specs
resize(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Resize a database cluster.
Examples
iex> DigitalOcean.Database.resize(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> size: "db-s-4vcpu-8gb",
...> num_nodes: 3
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
update_eviction_policy(database_id, opts)
Specs
update_eviction_policy(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Update the eviction policy for a Redis database cluster.
Examples
iex> DigitalOcean.Database.update_eviction_policy(
...> "9cdb64e5-61e4-4b30-b711-11ef66d84558",
...> eviction_policy: "allkeys_lru"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
update_firewall_rules(database_id, opts)
Specs
update_firewall_rules(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Update firewall rules for a database cluster.
Examples
iex> DigitalOcean.Database.update_firewall_rules(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> rules: [
...> %{
...> type: "ip_addr",
...> value: "192.168.1.1"
...> }
...> ]
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
update_maintenance_window(database_id, opts)
Specs
update_maintenance_window(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Update the automatic maintenance window for a database cluster.
Examples
iex> DigitalOcean.Database.update_maintenance_window(
...> "9cc10173-e9ea-4176-9dbc-a4cee4c4ff30",
...> day: "tuesday",
...> hour: "14:00"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
update_sql_mode(database_id, opts)
Specs
update_sql_mode(String.t(), Keyword.t()) :: DigitalOcean.Operation.t()
Update the SQL mode for a MySQL database cluster.
Examples
iex> DigitalOcean.Database.update_sql_mode(
...> "9cdb64e5-61e4-4b30-b711-11ef66d84558",
...> sql_mode: "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE"
...> ) |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }