DigitalOcean.Database (digital_ocean v0.5.0)

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.

Functions

create(opts)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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 \\ [])

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

@spec 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)

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