pools
Creates, updates, deletes, gets or lists a pools
resource.
Overview
Name | pools |
Type | Resource |
Id | digitalocean.databases.pools |
Fields
Name | Datatype | Description |
---|---|---|
name | string | A unique name for the connection pool. Must be between 3 and 60 characters. |
connection | object | |
db | string | The database for use with the connection pool. |
mode | string | The PGBouncer transaction mode for the connection pool. The allowed values are session, transaction, and statement. |
private_connection | object | |
size | integer | The 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_connection | object | |
standby_private_connection | object | |
user | string | The name of the user for use with the connection pool. When excluded, all sessions connect to the database as the inbound user. |
Methods
Name | Accessible by | Required Params | Description |
---|---|---|---|
databases_get_connection_pool | SELECT | database_cluster_uuid, pool_name | To 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_pools | SELECT | database_cluster_uuid | 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. |
databases_add_connection_pool | INSERT | database_cluster_uuid, data__db, data__mode, data__name, data__size | For 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_pool | DELETE | database_cluster_uuid, pool_name | To 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_pool | EXEC | database_cluster_uuid, pool_name, data__db, data__mode, data__size | To 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.
- Required Properties
- All Properties
- Manifest
/*+ 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 }}'
;
/*+ create */
INSERT INTO digitalocean.databases.pools (
data__name,
data__mode,
data__size,
data__db,
database_cluster_uuid
)
SELECT
'{{ name }}',
'{{ mode }}',
'{{ size }}',
'{{ db }}',
'{{ database_cluster_uuid }}'
;
- name: pools
props:
- name: database_cluster_uuid
value: string
- name: data__db
value: string
- name: data__mode
value: string
- name: data__name
value: string
- name: data__size
value: string
- name: name
value: string
- name: mode
value: string
- name: size
value: integer
- name: db
value: string
- name: user
value: string
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 }}';