---
title: "Manage PostgreSQL Database Clusters | Hostman Docs"
description: "Learn how to manage PostgreSQL databases in Hostman: create databases and users, import data, configure privileges, enable extensions, tune parameters, and connect to your cluster."
---

> For the complete documentation index for AI agents, see [llms.txt](https://hostman.com/llms.txt).

PostgreSQL is an open-source object-relational database management system. It is known for its reliability, scalability, and extensive functionality, including JSON support, full-text search, stored procedures, extensions, and more.

With Hostman managed PostgreSQL databases, you get a fully managed PostgreSQL cluster without manual setup: everything is handled automatically.

When creating a cluster, you can select the PostgreSQL version: 14, 15, 16, 17, 18.

## Creating Databases

When you create a new cluster, a database named `default_db` is created automatically. 

You can create additional databases:

1.  Go to the **Databases** section of your Hostman dashboard.
    
2.  Click on the cluster.
    
3.  In the **Databases** tab, click **Add**.
    

![C07452c6 6988 49f2 Bc35 Aa3bb634a399](https://content.hostman.com/assets/31aa8b5c-0a7f-4cdd-8e53-b2be6a379515.png?width=1537&height=753)

4.  Provide a name for your database: 3–64 characters. Letters, numbers, and special characters are allowed.
    
5.  Add a description, if necessary.
    
6.  Click **Create**.
    

![Ab9a9e55 A570 4695 B4a6 A4d0e8601b2f](https://content.hostman.com/assets/33181a05-f4ba-4f86-b004-246d5de70d95.png?width=1545&height=746)

## Database Import

To import a database:

1.  Go to the **Databases** section of your Hostman dashboard.
2.  Click on the cluster.
3.  In the **Databases** tab, click **Import**.

![Import](https://content.hostman.com/assets/e6faf2d1-3ec0-4177-8ef5-b09411e4045c.png?width=1540&height=755)

4.  Enter the connection details for the database you want to import.
5.  Click **Start import**. 

### Requirements and Limitations

-   **Network Access**: The source database must be accessible for connection from the internet from any IP address. Without this, the import will not start.
-   **Public IP**: The target cluster must have a public IPv4 address.
-   **Unique Name**: The target cluster must not contain a database with the same (identical) name.
-   **Version Compatibility**: Import supports transferring data between different versions of PostgreSQL (for example, from 17 to 18). However, some extensions and parameters may be incompatible or differ between versions.

**What will be transferred:**

-   Table structures
-   Indexes
-   Data in tables

**What will not be transferred:**

-   Users and roles
-   Extensions

You will need to create users and install the required extensions manually in the new database.

## Users and Privileges

When a new cluster is provisioned, it automatically includes a database user named `gen_user`. You can add more users in the **Databases** section.

### Creating Users

1.  Go to the **Databases** section and click on the cluster.
    
2.  Open the **Users** tab and click **Add**.
    

![Ee04ecdb 2a74 4a55 8e18 A7f2903c04de](https://content.hostman.com/assets/8497d3e2-3c02-43e6-8fca-0bd992c02a4e.png?width=1538&height=759)

3.  Set the username and password:
    

-   Username: 3–64 characters. Letters, numbers, and special characters are allowed.
    
-   Password: 8–30 characters. Letters, numbers, and special characters are allowed.
    

5.  (Optional) Configure the user’s privileges. You can also leave the default parameters and change them later at any time.
    
6.  Click **Create**.
    

### Modifying Privileges

To update the privileges of an existing user:

1.  Go to the **Databases** section and click on the cluster.
    
2.  Open the **Users** tab.
    
3.  Click the three dots next to the user.
    
4.  Select **Privileges**.
    

![26a04155 88de 43fd 8c8a E715a4e9d7b0](https://content.hostman.com/assets/dcdd4700-572d-4acc-94b3-3bbf530d91fe.png?width=1543&height=839)

5.  Choose the required privileges. You can grant access to a specific database or grant the same privileges for all databases by enabling **Identical for all databases** in the top right.
    

![6eae3e45 839c 4848 9e8b Be016c8df921](https://content.hostman.com/assets/d053f4f6-bdc1-4375-ad34-e2554090f556.png?width=1552&height=1208)

### Available Privileges

| **Privilege** | **Description** |
| --- | --- |
| `SELECT` | Read data from tables, views, and sequences. |
| `INSERT` | Add new rows into tables. |
| `UPDATE` | Modify existing rows in tables. |
| `DELETE` | Delete rows from tables. |
| `TRUNCATE` | Quickly delete all rows in a table (without logging each row deletion). |
| `CREATE` | Create new objects (tables, views, functions, etc.). |
| `REFERENCES` | Use a table as a foreign key. |
| `TRIGGER` | Create and execute triggers on a table. |
| `TEMPORARY` | Create temporary tables. |
| `CREATEDB` | Create new databases. |
| `CREATE_ROLE` | Create new roles. |

### Changing User Password

You can change the user password:

1.  Go to the **Database** section and click on the cluster.
2.  Go to the **Users** tab.
3.  Click the three dots next to the user.
4.  Select **Change password**.
5.  Enter a new value and save changes.

## Extensions

PostgreSQL extensions allow you to expand the functionality of [PostgreSQL databases](https://hostman.com/postgresql/) by adding additional capabilities to solve certain tasks. You can read more about extensions in the PostgreSQL documentation.

### Enabling Extensions

To enable or disable extensions:

1.  Go to the **Databases** section and click on the cluster.
    
2.  Go to the **Configuration** tab.
    
3.  Click **Modify** next to **Extensions**.
    

![E5f9e2f3 B9fc 4d53 A4f5 B50f1e751b0d](https://content.hostman.com/assets/47f3dcb2-734b-43de-9796-a6a16b949d5b.png?width=1537&height=972)

4.  Select the database and the required extensions. To apply the same extensions to all databases in the cluster, enable the **Use the same extensions for all databases** option.
    

![C6debd31 Dcea 4e79 B5bb 5bbfc83252dc](https://content.hostman.com/assets/f7877dc2-9272-4ea1-aaf8-865198663eb0.png?width=1522&height=1106)

### Extensions List

The following extensions are available:

| **Extension** | **Description** |
| --- | --- |
| `amcheck` | Index and table integrity checking. |
| `citext` | Case-insensitive string type. |
| `pg_stat_statements` | Collects and analyzes SQL query execution statistics. |
| `pg_trgm` | String search and comparison using trigrams (fuzzy search). |
| `pgcrypto` | Cryptographic functions: hashing, encryption, digital signatures. |
| `postgis` | Work with geographic and geometric data (GIS). |
| `postgis_topology` | Topological models for spatial data. |
| `uuid-ossp` | Generate UUIDs of various versions. |
| `pgvector` | Vector data type with ivfflat and hnsw indexes for similarity search. |
| `pgagent` | Job scheduling agent |

## Database Parameters

You can change database settings to optimize its performance. 

By default, the database is created with the parameters that are suitable for most tasks and will ensure the performance of the selected configuration. However, if your project requires specific settings, you can change them as you wish. 

Be careful and change parameters only if you are sure of their purpose. Incorrect configuration can negatively affect the operation of the database and its performance.

### Parameters List

| **Parameter** | **Values** | **Default** |
| --- | --- | --- |
| [autovacuum\_analyze\_scale\_factor](https://postgresqlco.nf/doc/en/param/autovacuum_analyze_scale_factor) | 0–100 | 0.1 |
| [autovacuum\_max\_workers](https://postgresqlco.nf/doc/en/param/autovacuum_max_workers/) | 1–262143 | 3 |
| [autovacuum\_naptime](https://postgresqlco.nf/doc/en/param/autovacuum_naptime/) | 1–2147483 | 60 |
| [autovacuum\_vacuum\_insert\_scale\_factor](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_insert_scale_factor/) | 0–100 | 0.2 |
| [autovacuum\_vacuum\_scale\_factor](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_scale_factor/) | 0–100 | 0.2 |
| [autovacuum\_work\_mem](https://postgresqlco.nf/doc/en/param/autovacuum_work_mem/) | \-1–2147483647 | \-1 |
| [bgwriter\_delay](https://postgresqlco.nf/doc/en/param/bgwriter_delay/) | 10–10000 | 200 |
| [bgwriter\_lru\_maxpages](https://postgresqlco.nf/doc/en/param/bgwriter_lru_maxpages/) | 0–1073741823 | 100 |
| [deadlock\_timeout](https://postgresqlco.nf/doc/en/param/deadlock_timeout/) | 1–2147483647 | 1000 |
| [gin\_pending\_list\_limit](https://postgresqlco.nf/doc/en/param/gin_pending_list_limit/) | 64–2147483647 | 4096 |
| [idle\_in\_transaction\_session\_timeout](https://postgresqlco.nf/doc/en/param/idle_in_transaction_session_timeout/) | 0–2147483647 | 0 |
| [join\_collapse\_limit](https://postgresqlco.nf/doc/en/param/join_collapse_limit/) | 1–2147483647 | 8 |
| [lock\_timeout](https://postgresqlco.nf/doc/en/param/lock_timeout/) | 0–2147483647 | 0 |
| [max\_prepared\_transactions](https://postgresqlco.nf/doc/en/param/max_prepared_transactions/) | 0–262143 | 0 |
| [max\_connections](https://postgresqlco.nf/doc/en/param/max_connections/) | 1–262143 | 200 |
| [shared\_buffers](https://postgresqlco.nf/doc/en/param/shared_buffers/) | 16–1073741823 | 31232 |
| [wal\_buffers](https://postgresqlco.nf/doc/en/param/wal_buffers/) | \-1–262143 | 2048 |
| [temp\_buffers](https://postgresqlco.nf/doc/en/param/temp_buffers/) | 100–1073741823 | 1024 |
| [work\_mem](https://postgresqlco.nf/doc/en/param/work_mem/) | 64–2147483647 | 436 |
| [default\_transaction\_isolation](https://postgresqlco.nf/doc/en/param/default_transaction_isolation/) | — | read committed |
| [effective\_cache\_size](https://postgresqlco.nf/doc/en/param/effective_cache_size/) | 1–2147483647 | 524288 |
| [max\_wal\_size](https://postgresqlco.nf/doc/en/param/max_wal_size/) | 2–2147483647 | 1024 |
| [min\_wal\_size](https://postgresqlco.nf/doc/en/param/min_wal_size/) | 2–2147483647 | 80 |
| [wal\_level](https://postgresqlco.nf/doc/en/param/wal_level/) | replica / logical | replica |
| [max\_replication\_slots](https://postgresqlco.nf/doc/en/param/max_replication_slots/) | 5–262143 | 10 |
| [max\_wal\_senders](https://postgresqlco.nf/doc/en/param/max_wal_senders/) | 5–262143 | 10 |
| [max\_worker\_processes](https://postgresqlco.nf/doc/en/param/max_worker_processes/) | 0–262143 | 8 |
| [max\_logical\_replication\_workers](https://postgresqlco.nf/doc/en/param/max_logical_replication_workers/) | 0–262143 | 4 |
| [max\_parallel\_maintenance\_workers](https://postgresqlco.nf/doc/en/param/max_parallel_maintenance_workers/) | 0–1024 | 2 |
| [max\_parallel\_workers](https://postgresqlco.nf/doc/en/param/max_parallel_workers/) | 0–1024 | 8 |
| [max\_parallel\_workers\_per\_gather](https://postgresqlco.nf/doc/en/param/max_parallel_workers_per_gather/) | 0–1024 | 2 |
| [array\_nulls](https://postgresqlco.nf/doc/en/param/array_nulls/) | On/Off | On |
| [backend\_flush\_after](https://postgresqlco.nf/doc/en/param/backend_flush_after/) | 0–256 | 0 |
| [backslash\_quote](https://postgresqlco.nf/doc/en/param/backslash_quote/) | On/Off/safe\_encoding | safe\_encoding |
| [bgwriter\_flush\_after](https://postgresqlco.nf/doc/en/param/bgwriter_flush_after/) | 0–256 | 64 |
| [bgwriter\_lru\_multiplier](https://postgresqlco.nf/doc/en/param/bgwriter_lru_multiplier/) | 1–10 | 2 |
| [default\_transaction\_read\_only](https://postgresqlco.nf/doc/en/param/default_transaction_read_only/) | On/Off | Off |
| [enable\_hashagg](https://postgresqlco.nf/doc/en/param/enable_hashagg/) | On/Off | On |
| [enable\_hashjoin](https://postgresqlco.nf/doc/en/param/enable_hashjoin/) | On/Off | On |
| [enable\_incremental\_sort](https://postgresqlco.nf/doc/en/param/enable_incremental_sort/) | On/Off | On |
| [enable\_indexscan](https://postgresqlco.nf/doc/en/param/enable_indexscan/) | On/Off | On |
| [enable\_indexonlyscan](https://postgresqlco.nf/doc/en/param/enable_indexonlyscan/) | On/Off | On |
| [enable\_material](https://postgresqlco.nf/doc/en/param/enable_material/) | On/Off | On |
| [enable\_memoize](https://postgresqlco.nf/doc/en/param/enable_memoize/) | On/Off | On |
| [enable\_mergejoin](https://postgresqlco.nf/doc/en/param/enable_mergejoin/) | On/Off | On |
| [enable\_parallel\_append](https://postgresqlco.nf/doc/en/param/enable_parallel_append/) | On/Off | On |
| [enable\_parallel\_hash](https://postgresqlco.nf/doc/en/param/enable_parallel_hash/) | On/Off | On |
| [enable\_partition\_pruning](https://postgresqlco.nf/doc/en/param/enable_partition_pruning/) | On/Off | On |
| [enable\_partitionwise\_join](https://postgresqlco.nf/doc/en/param/enable_partitionwise_join/) | On/Off | Off |
| [enable\_partitionwise\_aggregate](https://postgresqlco.nf/doc/en/param/enable_partitionwise_aggregate/) | On/Off | Off |
| [enable\_seqscan](https://postgresqlco.nf/doc/en/param/enable_seqscan/) | On/Off | On |
| [enable\_sort](https://postgresqlco.nf/doc/en/param/enable_sort/) | On/Off | On |
| [enable\_tidscan](https://postgresqlco.nf/doc/en/param/enable_tidscan/) | On/Off | On |
| [exit\_on\_error](https://postgresqlco.nf/doc/en/param/exit_on_error/) | On/Off | Off |
| [from\_collapse\_limit](https://postgresqlco.nf/doc/en/param/from_collapse_limit/) | 1–2147483647 | 8 |
| [idle\_session\_timeout](https://postgresqlco.nf/doc/en/param/idle_session_timeout/) | 0–2147483647 | 900000 |
| [jit](https://postgresqlco.nf/doc/en/param/jit/) | On/Off | On |
| [plan\_cache\_mode](https://postgresqlco.nf/doc/en/param/plan_cache_mode/) | auto / force custom plan / force generic plan | auto |
| [quote\_all\_identifiers](https://postgresqlco.nf/doc/en/param/quote_all_identifiers/) | On/Off | Off |
| [standard\_conforming\_strings](https://postgresqlco.nf/doc/en/param/standard_conforming_strings/) | On/Off | On |
| [statement\_timeout](https://postgresqlco.nf/doc/en/param/statement_timeout/) | 0–2147483647 | 0 |
| [timezone](https://postgresqlco.nf/doc/en/param/TimeZone/) | \-13:59–+14:00 | — |
| [transform\_null\_equals](https://postgresqlco.nf/doc/en/param/transform_null_equals/) | On/Off | Off |
| [max\_locks\_per\_transaction](https://postgresqlco.nf/doc/en/param/max_locks_per_transaction/) | 1–2147483647 | 64 |
| [autovacuum\_vacuum\_cost\_limit](https://postgresqlco.nf/doc/en/param/autovacuum_vacuum_cost_limit/) | \-1–10000 | 200 |
| [checkpoint\_timeout](https://postgresqlco.nf/doc/en/param/checkpoint_timeout/) | 30–86400 | 300 |
| [checkpoint\_completion\_target](https://postgresqlco.nf/doc/en/param/checkpoint_completion_target/) | 0–1 | 0.5 |
| [wal\_compression](https://postgresqlco.nf/doc/en/param/wal_compression/) | On/Off/pglz/lz4/zstd | Off |
| [random\_page\_cost](https://postgresqlco.nf/doc/en/param/random_page_cost/) | 0–10 | 4 |
| [effective\_io\_concurrency](https://postgresqlco.nf/doc/en/param/effective_io_concurrency/) | 0–1000 | 1 |
| [log\_lock\_waits](https://postgresqlco.nf/doc/en/param/log_lock_waits/) | On/Off | Off |
| [log\_temp\_files](https://postgresqlco.nf/doc/en/param/log_temp_files/) | \-1–2147483647 | \-1 |
| [track\_io\_timing](https://postgresqlco.nf/doc/en/param/track_io_timing/) | On/Off | Off |
| [maintenance\_work\_mem](https://postgresqlco.nf/doc/en/param/maintenance_work_mem/) | 1024–2147483647 | 33554432 |

### Changing Parameters

1.  Go to the **Databases** section and click on the cluster.
    
2.  Go to the **Configuration** tab.
    
3.  Click **Modify parameters** next to **Database parameters**.
    

![70e7f8cc F84b 4124 960b C33e2d598237](https://content.hostman.com/assets/b4defc5b-7c71-4682-b31f-23eb7802129d.png?width=1540&height=973)

4.  Adjust the parameters. To read more about each parameter, click **Open description** next to it.
    

![9e882ca8 Ff8a 4e4c A153 94bc49e5c8f8](https://content.hostman.com/assets/c61cebcb-3336-43b5-8903-edda09361c75.png?width=1538&height=1131)

5.  Click **Apply and Restart** at the bottom of the page.
    
6.  Confirm the action.

### Resetting Parameters

If needed, you can restore one or all parameters to their default values.

> [!NOTE]
> Be careful: the parameters will be reset immediately, without additional confirmation.

#### Resetting a Single Parameter

1.  Go to the **Databases** section and click on the cluster.
2.  Go to the **Configuration** tab.
3.  Click **Modify parameters** next to **Database parameters**.
4.  Click **Reset to default** next to the parameter you want to reset. 

![Modify Parameters 2026 07 20 10 58](https://content.hostman.com/assets/31d12f2e-d166-4344-a0fc-ad2e702950e1.png?width=1563&height=869)

5.  Click **Apply and Restart** at the bottom of the page.
    
6.  Confirm the action.

#### Resetting All Parameters

1.  Go to the **Databases** section and click on the cluster.
2.  Go to the **Configuration** tab.
3.  Click **Modify parameters** next to **Database parameters**.
4.  Click **Restore default settings** at the bottom of the page.
5.  Click **Continue** to confirm. The cluster will be restarted.

![Modify Parameters 2026 07 20 11 01](https://content.hostman.com/assets/9b42f6f7-3139-453b-9eb9-8891b8ce7b03.png?width=1555&height=867)

### Importing and Exporting Parameters

PostgreSQL parameters can be exported to a file and imported into another cluster.

#### Importing Parameters

1.  Go to the **Databases** section and click on the cluster.
2.  Go to the **Configuration** tab.
3.  Click **Modify parameters** next to **Database parameters**.
4.  Click **Import / export** → **Import parameters**.

![Modify Parameters 2026 07 20 11 05](https://content.hostman.com/assets/5a5c52ee-e9bb-49dd-81bb-e31eda2259eb.png?width=1572&height=868)

5.  Select a JSON file containing the parameters.
6.  Click **Apply**.

The parameters file must contain an object with parameter names as keys and their values as strings:

```shell
{
  "parameter_name_1": "parameter_value_1",
  "parameter_name_2": "parameter_value_2"
}
```

If a parameter doesn't exist in the PostgreSQL version you're using, or can't be modified, it will be ignored during import.

#### Exporting Parameters

1.  Go to the **Databases** section and click on the cluster.
2.  Go to the **Configuration** tab.
3.  Click **Modify parameters** next to **Database parameters**.
4.  Click **Import / export** → **Export parameters**.

Your browser will download a JSON file containing the current parameter values.

![Modify Parameters 2026 07 20 11 03](https://content.hostman.com/assets/9f664166-bd52-464e-a7db-7adb427ddce4.png?width=1551&height=858)

## Connecting to the Database

You can connect to your databases using **Adminer** or via terminal. Connecting via Adminer is possible only if the cluster has a public IP address.

### Adminer

You can connect to the database via the built-in web interface Adminer. 

1.  Go to the **Databases** section and click on the cluster.
    
2.  Click the **Web Interface** button and select **Adminer**.
    

![772dffc9 765b 4682 9447 63c0f8b6886c](https://content.hostman.com/assets/4790e609-bb0f-4da8-b768-693a0d4a3aa4.png?width=1560&height=761)

### Terminal

Install the PostgreSQL client:

-   Ubuntu/Debian

```shell
sudo apt install postgresql-client
```

-   Arch

```shell
sudo pacman -S postgresql-libs
```

-   Fedora

```shell
sudo dnf install postgresql
```

There are two ways to connect to a PostgreSQL cluster:

-   via public IP;
-   via private IP.

You can copy the connection command from:

-   the **Dashboard** tab:
    

![6dd75993 D295 4779 9c0e 0cecd159c52d](https://content.hostman.com/assets/047f6d5a-79ab-4893-8cc0-b48db233232b.png?width=1576&height=1506)

-   the **Connection** tab.
    

![D176824e 4a02 42f8 99ca 34a28d591937](https://content.hostman.com/assets/3569d9da-f2dc-4696-a9b9-67aa063eab18.png?width=1552&height=759)

## Role Management

A user with the `CREATE ROLE` privilege can:

-   create new users (`CREATE USER`);
-   create roles (`CREATE ROLE`);
-   manage role memberships (`GRANT ... TO ...`).

### Creating a User

A user is a role that is allowed to log in to the database. Such a role can connect with a username and password.

To create a user with a password, run:

```sql
CREATE USER someuser WITH PASSWORD 'password';
```

Here, `someuser` is the username and `password` is the password.

The new user will appear in the **Users** tab shortly after creation.

### Creating a Role and Assigning It to a User

Instead of granting permissions directly to each user, it is better to create roles with the required privileges and then assign users to these roles.

Let’s create two roles: one with read-only access, and another with read and write access.

Read-only role:

```sql
CREATE ROLE app_reader;
```

Read/write role:

```sql
CREATE ROLE app_writer;
```

Assign a role to a user:

```sql
GRANT app_writer TO someuser;
```

### Schema Configuration

By default, all PostgreSQL tables are created in the public schema. To grant permissions, create a new schema:

```sql
CREATE SCHEMA app_data;
```

Create tables in the new schema:

```sql
CREATE TABLE app_data.users (
  id SERIAL PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  email VARCHAR(100) UNIQUE NOT NULL
);

CREATE TABLE app_data.orders (
  id SERIAL PRIMARY KEY,
  user_id INTEGER REFERENCES app_data.users(id),
  order_date TIMESTAMP DEFAULT now()
);
```

Grant access to the schema for the previously created roles:

```sql
GRANT USAGE ON SCHEMA app_data TO app_reader;
GRANT USAGE ON SCHEMA app_data TO app_writer;
```

Grant the right to create objects in the schema:

```sql
GRANT CREATE ON SCHEMA app_data TO app_writer;
```

### Table Permissions

Grant read access to all existing tables in the schema:

```sql
GRANT SELECT ON ALL TABLES IN SCHEMA app_data TO app_reader;
```

Grant read/write access:

```sql
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA app_data TO app_writer;
```

Set default permissions for new tables:

```sql
ALTER DEFAULT PRIVILEGES IN SCHEMA app_data 
GRANT SELECT ON TABLES TO app_reader;

ALTER DEFAULT PRIVILEGES IN SCHEMA app_data 
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO app_writer;
```

And default permissions for new sequences:

```sql
ALTER DEFAULT PRIVILEGES IN SCHEMA app_data 
GRANT USAGE, SELECT ON SEQUENCES TO app_writer;
```

## Creating a Dump

To create a dump, run:

```shell
pg_dump -x 'postgresql://<user>:<password>@<host>:5432/<db>' | gzip > default_db.sql.gz
```

The `-x (--no-privileges)` flag excludes `GRANT` and `REVOKE` commands from the dump, since permission management is handled via the dashboard.

Without this flag, errors may occur when loading the dump, though they won’t affect data restoration.

## Loading a Dump

To load a dump, run:

```shell
zcat default_db.sql.gz | psql 'postgresql://<user>:<password>@<host>:5432/<db>'
```

This command decompresses the dump and passes it to the PostgreSQL client for execution.

## Basic Plan Limitations

The basic database plan (1 CPU / 1 GB RAM / 20 GB NVMe) has the following technical limitations:

-   Additional databases cannot be added
-   Additional users cannot be added
-   The following parameters cannot be configured:
    -   `shared_buffers`
    -   `effective_cache_size`
    -   `maintenance_work_mem`
    -   `max_connections`
