database connection.md

Connect Postgres for React Router

Summary

Connect a React Router 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.

Infrastructure requirements

Prerequisites

Exact tested configuration

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.
   ample deploy . --name <app-name> --public
  1. Test the connection through the app. Expose a route (/db) that runs a trivial query and returns postgres=ok.
  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-20T01:42:25Z

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.