page:guides:astro:database connection

Connect Postgres for Astro

Summary

Connect an Astro 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

Input Schema

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 (/db) 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