> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paradime.io/llms.txt
> Use this file to discover all available pages before exploring further.

# PostgreSQL

> Integrate PostgreSQL with Paradime to enable dbt™ development

PostgreSQL is an open-source relational database system known for its reliability and feature robustness. As a development environment in Paradime, PostgreSQL enables dbt™️ development from Paradime's **Code IDE**.

<Warning>
  **IP RESTRICTIONS**

  Make sure to allow traffic from one of the Paradime IPs in your firewall depending on the data location selected.

  👉 See also: [Paradime IP addresses](/developers/ip-restrictions).
</Warning>

### Setup Instructions

1. Click **Settings** in the top menu bar of the Paradime interface to access **Account Settings**
2. In the left sidebar, click "**Connections**"
3. Click "**Add New**" next to the Code IDE section
4. Select "**PostgreSQL**"
5. In the **Profile Configuration** field, add at least these required parameters. For additional configuration options, see the [Profile Fields Reference](/products/settings/connections/development-environment/postgresql#profile-fields-reference) section.

```yaml theme={"system"}
host: analytics-db.company.com                # Database host
port: 5432                                    # Connection port
user: analytics_user                          # Database user
password: ****                                # User password
database: analytics_prod                      # Production database
schema: dbt                                   # Default schema
```

<Info>
  After adding the configuration, ensure it's properly formatted using a YAML formatter like [YAML Formatter](https://jsonformatter.org/yaml-formatter).
</Info>

6. Provide a dbt™ **Profile Name** (This should match with the profile name set in your `dbt_project.yml`).
7. In the **Target** field, enter "**dev**". This is the default target your dbt project will use for development work.
8. The "**Schema**" field is pre-configured, but you can change it to specify the schema where dbt will build objects.
9. The "**Threads**" value is pre-configured to 1, but you can adjust this number to specify how many parallel operations your dbt project can run.

***

### Example Profile Configuration

<Frame>
  <img src="https://mintcdn.com/paradime-docs/_V48tdxcy1g_Y-dv/images/image-24.png?fit=max&auto=format&n=_V48tdxcy1g_Y-dv&q=85&s=4e51135bbbf79459dc42bb4cf2fa3048" alt="" width="736" height="736" data-path="images/image-24.png" />
</Frame>

***

### Profile Fields Reference

| Field            | Description                                                                   | Example             | Default Value  | Required |
| ---------------- | ----------------------------------------------------------------------------- | ------------------- | -------------- | -------- |
| host             | Database server hostname or IP address                                        | `db.company.com`    | None           | ✅        |
| user             | PostgreSQL authentication username                                            | `postgres_user`     | None           | ✅        |
| password         | User authentication password                                                  | `your_password`     | None           | ✅        |
| port             | PostgreSQL server port number                                                 | `5432`              | `5432`         | ✅        |
| dbname           | Name of the target database                                                   | `analytics`         | None           | ✅        |
| schema           | Name of the target schema.This is configured in the UI "Schema" field         | `public`            | `public`       | ✅        |
| threads          | Number of concurrent operations. This is configured in the UI "Threads" field | `4`                 | `1`            | ✅        |
| keepalives\_idle | Time in seconds between connection keepalive pings                            | `60`                | `0`            | ❌        |
| connect\_timeout | Seconds to wait for connection establishment                                  | `10`                | `10`           | ❌        |
| retries          | Number of times to retry failed connections                                   | `3`                 | `1`            | ❌        |
| search\_path     | Order of schemas Postgres will search through                                 | `public , prod`     | `$user,public` | ❌        |
| role             | PostgreSQL role to assume when executing queries                              | `analytics_role`    | None           | ❌        |
| sslmode          | Level of SSL connection security                                              | `verify-full`       | `prefer`       | ❌        |
| sslcert          | Path to client SSL certificate file                                           | `/path/to/cert`     | None           | ❌        |
| sslkey           | Path to client SSL private key file                                           | `/path/to/key`      | None           | ❌        |
| sslrootcert      | Path to SSL root certificate authority file                                   | `/path/to/root.crt` | None           | ❌        |


## Related topics

- [PostgreSQL](/products/settings/connections/dinoai-background-agent-environment/postgresql.md)
- [Scheduler environment](/products/settings/connections/scheduler-environment/index.md)
- [DinoAI Background Agent environment](/products/settings/connections/dinoai-background-agent-environment/index.md)
- [Code IDE environment](/products/settings/connections/development-environment/index.md)
