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.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
spec:
type: state.postgresql
version: v1
metadata:
- name: connectionString
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
Field | Required | Details | Example |
---|---|---|---|
connectionString | Y | The connection string for PostgreSQL | “host=localhost user=postgres password=example port=5432 connect_timeout=10 database=dapr_test” |
actorStateStore | N | Consider 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.
- name: actorStateStore
value: "true"
Create PostgreSQL
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”.
docker run -p 5432:5432 -e POSTGRES_PASSWORD=example postgres
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:
create database dapr_test
Related links
- Basic schema for a Dapr component
- Read this guide for instructions on configuring state store components
- State management building block
Last modified July 27, 2022: Remove namespace element from component examples (#2647) (ff9de5c8)