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

Specs

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{} }
Link to this function

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{} }
Link to this function

create_db(database_id, opts)

Specs

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{} }
Link to this function

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{} }
Link to this function

create_user(database_id, opts)

Specs

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{} }
Link to this function

delete(database_id)

Specs

Delete a database cluster.

Examples

iex> DigitalOcean.Database.delete("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

delete_db(database_id, db_name)

Specs

Delete a database from a database cluster.

Examples

iex> DigitalOcean.Database.delete_db("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "alpha") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

get(database_id)

Specs

Retrieve details about a specific database cluster.

Examples

iex> DigitalOcean.Database.get("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

get_db(database_id, db_name)

Specs

Retrieve details about a specific database.

Examples

iex> DigitalOcean.Database.get("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30", "alpha") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

get_user(database_id, username)

Specs

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{} }
Link to this function

list(opts \\ [])

Specs

Retrieve a list of database clusters.

Examples

iex> DigitalOcean.Database.list() |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

list_dbs(database_id, opts \\ [])

Specs

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{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

list_users(database_id, opts \\ [])

Specs

Retrieve a list of users for a database.

Examples

iex> DigitalOcean.Database.list_users("9cc10173-e9ea-4176-9dbc-a4cee4c4ff30") |> DigitalOcean.request()
{ :ok, %DigitalOcean.Response{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

resize(database_id, opts)

Specs

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{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

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{} }
Link to this function

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{} }