database connection.md

Connect Postgres for Express

Summary

Connect an Express app to PostgreSQL on Ample. Read DATABASE_URL at runtime: 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.

Infrastructure requirements

Prerequisites

Exact tested configuration

Steps

  1. Read the URL at runtime. Construct the pg Pool from process.env.DATABASE_URL inside the app; never commit credentials.
  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.
   ample deploy . --name <app-name> --public --env DATABASE_URL=postgres://...
  1. Test the connection through the app. Expose a route that runs a trivial query and returns postgres=ok, then deploy and fetch it.
  2. 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.
   ample logs <deployment_id> --kind build

Tested examples

Success checks

Limitations

Cost estimate

Estimated 10.00 USD per month (size prices from pricing.toml at build revision a1b8c38919e59cd035ebabaced73cf84ece24371).

Apps and managed databases auto-pause when idle; the estimate is the always-on monthly price of the tested sizes. Plan quotas and budgets apply.

Verification evidence

Last verified: 2026-09-19T23:55:33Z

Execution binding

MCP tool ample_deploy (registry mcp:ample_deploy), schema hash 876465fce906da0c observed 2026-09-20T01:55:48.667900+00:00 at revision 199ff1dfd526, binding state current, required scopes: servers:write, databases:read.