# Connect Soda to PostgreSQL

> For Soda to run quality scans on your data, you must configure it to connect to your data source.\
> To learn how to set up Soda and configure it to connect to your data sources, see [Get started](https://docs.soda.io/soda-documentation/soda-v3/quick-start-sip/setup-guide).

## Connection configuration reference

Install package: `soda-postgres`

```yaml
data_source my_datasource_name:
  type: postgres
  host: db
  port: "5432"
  username: soda
  password: secret
  database: postgres
  schema: public
  sslmode: prefer
```

| Property | Required | Notes                                                                                                                                                                                            |
| -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| type     | required | Identify the type of data source for Soda.                                                                                                                                                       |
| host     | required | Provide a host identifier.                                                                                                                                                                       |
| port     | required | Provide a port identifier.                                                                                                                                                                       |
| username | required | Consider using system variables to retrieve this value securely.                                                                                                                                 |
| password | required | Consider using system variables to retrieve this value securely.                                                                                                                                 |
| database | required | Provide an identifier for your database.                                                                                                                                                         |
| schema   | optional | Provide an identifier for the schema in which your dataset exists.                                                                                                                               |
| sslmode  | optional | <p>Provide a value to indicate the type of SSL support:<br><code>prefer</code><br><code>require</code><br><code>allow</code><br><code>diable</code><br>Default value is <code>prefer</code>.</p> |

## Test the data source connection <a href="#test-the-data-source-connection" id="test-the-data-source-connection"></a>

To confirm that you have correctly configured the connection details for the data source(s) in your configuration YAML file, use the `test-connection` command. If you wish, add a `-V` option to the command to return results in verbose mode in the CLI.

```sh
soda test-connection -d my_datasource -c configuration.yml -V
```

## Supported data types

| Category | Data type                                                                                                                 |
| -------- | ------------------------------------------------------------------------------------------------------------------------- |
| text     | CHARACTER VARYING, CHARACTER, CHAR, TEXT                                                                                  |
| number   | SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, VARIABLE, REAL, DOUBLE PRECISION, SMALLSERIAL, SERIAL, BIGSERIAL             |
| time     | TIMESTAMP, DATE, TIME, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITHOUT TIME ZONE, TIME WITH TIME ZONE, TIME WITHOUT TIME ZONE |
