---
layout: default
---

# State with Postgres Store

Use the Postgres store for persistent key/value state.

## In code

```go
package main

import (
    "log"
    "go-micro.dev/v6"
    "go-micro.dev/v6/store"
    postgres "go-micro.dev/v6/store/postgres"
)

func main() {
    st := postgres.NewStore()
    svc := micro.NewService("postgres-store", micro.Store(st))
    svc.Init()

    _ = store.Write(&store.Record{Key: "foo", Value: []byte("bar")})
    recs, _ := store.Read("foo")
    log.Println("value:", string(recs[0].Value))

    svc.Run()
}
```

## Via environment

Run your service with env vars set:

```bash
MICRO_STORE=postgres \
MICRO_STORE_ADDRESS=postgres://user:pass@127.0.0.1:5432/postgres \
MICRO_STORE_DATABASE=micro \
MICRO_STORE_TABLE=micro \
go run main.go
```
