page:guides:fastify:database connection

Connect Postgres for Fastify

Connect a Fastify app to PostgreSQL on Ample. Read DATABASE_URL at runtime with pg: when you supply one with --env it is delivered encrypted and takes precedence; when you supply none and the app needs PostgreSQL, Ample auto-provisions a managed PostgreSQL 16 database and injects its connection string.

Prerequisites

Workflow Steps

  1. Read the URL at runtime
    Open connections from the DATABASE_URL environment variable inside the app; never commit credentials and never connect at build time.

  2. Choose the source of the database
    Pass --env DATABASE_URL=... for an existing database, or omit it to let Ample provision a managed one on first deploy and reuse it on redeploys.
    Command: ample deploy . --name --public

  3. Test the connection through the app
    Expose a route (/items) that runs a trivial query and returns postgres=ok.

  4. Verify
    Fetch the live URL and run the success checks below. On failure read the build log, then the runtime log, fix the cause and deploy again; do not blind-retry.
    Command: ample logs --kind build

Examples

Success Checks

Limitations

Cost Estimate