page:guides:next js:database connection

Connect Postgres for Next.js

Connect a Next.js app to PostgreSQL on Ample from a route handler. Read DATABASE_URL at request time (force-dynamic) with pg; with no DATABASE_URL supplied, Ample auto-provisions a managed PostgreSQL 16 database and injects its connection string as an encrypted environment variable.

Representative Queries

Prerequisites

Workflow Steps

  1. Keep the database out of the build
    Mark the route handler dynamic and open the client per request; next build must not need the database.
  2. Deploy
    Omit DATABASE_URL to auto-provision, or pass --env DATABASE_URL=... to use an existing database.
    Command: ample deploy . --name --public
  3. Test through the app
    Fetch the route; it should report postgres=ok after a real query.
  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

Success Checks

Limitations

Cost Estimate

Examples

Formats

Next Actions