FerryDocs

Postgres databases

Each entry of databases creates one Postgres datastore.

Edit on GitHub
ferry.yaml
databases:
  - name: app-db                 # required
    postgresMajorVersion: "16"   # the image postgres:16-alpine
    databaseName: app
    user: app
    plan: basic-256mb            # 256 MiB of memory

Each of databases creates one . See Datastores for how Ferry runs them.

The keys

KeyTypeDefaultNotes
namestringrequiredThe name of the datastore. It has the same rules as the name of a service. It is the hostname on the private network.
databaseNamestringname with - replaced by _The database to create. 1 to 63 letters, digits or _. The first character is not a digit.
userstringdatabaseNameThe Postgres user. It has the same character rules as databaseName.
postgresMajorVersionstring16The image tag: postgres:<version>-alpine. Digits and dots only.
planstringnoneThe Postgres plan of Render. It becomes a memory limit. See Plans of a datastore.
memoryLimit, cpuLimitstring or numbernone: the limits of the container. They replace the limits of the plan. See memoryLimit and cpuLimit.

Services and datastores share their names: a name can exist one time only.

Ferry ignores other keys (region, ipAllowList, diskSizeGB…) with a warning.

After the first apply, an apply changes only the limits. See Datastores that exist.

On this page