3.3 KiB
3.3 KiB
PostgreSQL Persistent Storage
Setup
PostgreSQL
You'll need a running instance of PostgreSQL. You'll be able to run one in Docker.
docker run --rm -it -p 5432:5432 -e POSTGRES_USER="postgres" -e POSTGRES_PASSWORD="" -e POSTGRES_HOST_AUTH_METHOD="trust" postgres:14.1
Connectivity options
Using environmental variables
| Variable | Default | Description |
|---|---|---|
| POSTGRES_URL | URL as per docs. Other DB connection setup variables ignored if set. | |
| POSTGRES_HOST | localhost | Host to connect to |
| POSTGRES_PORT | 5432 | Port to connect to |
| POSTGRES_DB | postgres | Database name |
| POSTGRES_USERNAME | postgres | Username |
| POSTGRES_PASSWORD | Password | |
| POSTGRES_APP_NAME | Application name to register on PostgreSQL server |
Provide own instance
Both PostgresMetadataStore and PostgresNotificationStore encapsulates a PostgresStore, which in turn encapsulates a Tokio Postgres Client. Override accordingly.
Other options
| Environment Variable | Default | Description |
|---|---|---|
| POSTGRES_INIT_METADATA | If set to 'true', the metadata table will be created on PostgresMetadataStore initialization. | |
| POSTGRES_METADATA_TABLE | job | The metadata table name used by the PostgresMetadataStore. |
| POSTGRES_INIT_NOTIFICATIONS | If set to 'true', the notification tables will be created on PostgresNotificationStore initizalization. | |
| POSTGRES_NOTIFICATION_TABLE | notification | The table to hold the main notification data used by PostgresNotificationStore |
| POSTGRES_NOTIFICATION_STATES_TABLE | notification_state | The table to hold the states types vs notification id table. A 1:N relationship with the POSTGRES_NOTIFICATION_TABLE. |