PostgreSQL

Detailed information on the PostgreSQL state store component

Create a Dapr component

Create a file called postgres.yaml, paste the following and replace the <CONNECTION STRING> value with your connection string. The connection string is a standard PostgreSQL connection string. For example, "host=localhost user=postgres password=example port=5432 connect_timeout=10 database=dapr_test". See the PostgreSQL documentation on database connections, specifically Keyword/Value Connection Strings, for information on how to define a connection string.

If you want to also configure PostgreSQL to store actors, add the actorStateStore configuration element shown below.

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: <NAME>
  5. namespace: <NAMESPACE>
  6. spec:
  7. type: state.postgresql
  8. version: v1
  9. metadata:
  10. - name: connectionString
  11. value: "<CONNECTION STRING>"

Warning

The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described here.

Spec metadata fields

FieldRequiredDetailsExample
connectionStringYThe connection string for PostgreSQL“host=localhost user=postgres password=example port=5432 connect_timeout=10 database=dapr_test”
actorStateStoreNConsider this state store for actors. Defaults to “false”“true”, “false”

If you wish to use PostgreSQL as an actor store, append the following to the yaml.

  1. - name: actorStateStore
  2. value: "true"

Create PostgreSQL

  1. Run an instance of PostgreSQL. You can run a local instance of PostgreSQL in Docker CE with the following command:

    This example does not describe a production configuration because it sets the password in plain text and the user name is left as the PostgreSQL default of “postgres”.

    1. docker run -p 5432:5432 -e POSTGRES_PASSWORD=example postgres
  2. Create a database for state data. Either the default “postgres” database can be used, or create a new database for storing state data.

    To create a new database in PostgreSQL, run the following SQL command:

    1. create database dapr_test

Last modified February 18, 2022: Update setup-jetstream.md (#2200) (428d8c2)