Skip to main content

pools

Creates, updates, deletes, gets or lists a pools resource.

Overview

Namepools
TypeResource
Iddigitalocean.databases.pools

Fields

NameDatatypeDescription
namestringA unique name for the connection pool. Must be between 3 and 60 characters.
connectionobject
dbstringThe database for use with the connection pool.
modestringThe PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement.
private_connectionobject
sizeintegerThe desired size of the PGBouncer connection pool. The maximum allowed size is determined by the size of the cluster's primary node. 25 backend server connections are allowed for every 1GB of RAM. Three are reserved for maintenance. For example, a primary node with 1 GB of RAM allows for a maximum of 22 backend server connections while one with 4 GB would allow for 97. Note that these are shared across all connection pools in a cluster.
standby_connectionobject
standby_private_connectionobject
userstringThe name of the user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user.

Methods

NameAccessible byRequired ParamsDescription
databases_get_connection_poolSELECTdatabase_cluster_uuid, pool_nameTo show information about an existing connection pool for a PostgreSQL database cluster, send a GET request to /v2/databases/$DATABASE_ID/pools/$POOL_NAME. The response will be a JSON object with a pool key.
databases_list_connection_poolsSELECTdatabase_cluster_uuidTo list all of the connection pools available to a PostgreSQL database cluster, send a GET request to /v2/databases/$DATABASE_ID/pools. The result will be a JSON object with a pools key. This will be set to an array of connection pool objects.
databases_add_connection_poolINSERTdatabase_cluster_uuid, data__db, data__mode, data__name, data__sizeFor PostgreSQL database clusters, connection pools can be used to allow a database to share its idle connections. The popular PostgreSQL connection pooling utility PgBouncer is used to provide this service. See here for more information about how and why to use PgBouncer connection pooling including details about the available transaction modes. To add a new connection pool to a PostgreSQL database cluster, send a POST request to /v2/databases/$DATABASE_ID/pools specifying a name for the pool, the user to connect with, the database to connect to, as well as its desired size and transaction mode.
databases_delete_connection_poolDELETEdatabase_cluster_uuid, pool_nameTo delete a specific connection pool for a PostgreSQL database cluster, send a DELETE request to /v2/databases/$DATABASE_ID/pools/$POOL_NAME. A status of 204 will be given. This indicates that the request was processed successfully, but that no response body is needed.
databases_update_connection_poolEXECdatabase_cluster_uuid, pool_name, data__db, data__mode, data__sizeTo update a connection pool for a PostgreSQL database cluster, send a PUT request to /v2/databases/$DATABASE_ID/pools/$POOL_NAME.

SELECT examples

To list all of the connection pools available to a PostgreSQL database cluster, send a GET request to /v2/databases/$DATABASE_ID/pools. The result will be a JSON object with a pools key. This will be set to an array of connection pool objects.

SELECT
name,
connection,
db,
mode,
private_connection,
size,
standby_connection,
standby_private_connection,
user
FROM digitalocean.databases.pools
WHERE database_cluster_uuid = '{{ database_cluster_uuid }}';

INSERT example

Use the following StackQL query and manifest file to create a new pools resource.

/*+ create */
INSERT INTO digitalocean.databases.pools (
data__name,
data__mode,
data__size,
data__db,
data__user,
database_cluster_uuid
)
SELECT
'{{ name }}',
'{{ mode }}',
'{{ size }}',
'{{ db }}',
'{{ user }}',
'{{ database_cluster_uuid }}'
;

DELETE example

Deletes the specified pools resource.

/*+ delete */
DELETE FROM digitalocean.databases.pools
WHERE database_cluster_uuid = '{{ database_cluster_uuid }}'
AND pool_name = '{{ pool_name }}';