Sets up and optimizes Managed PostgreSQL on Render—connection strings (internal vs external), creation constraints, storage autoscaling, connection limits, high availability, read replicas, backups, and MCP inspection. Use when the user mentions Postgres, PostgreSQL, Render database, connection string, DATABASE_URL, backups, snapshots, replicas, HA, disk storage, connection pooling, or troubleshooting DB connectivity.
77
96%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
This skill covers Managed Postgres on Render: how to connect, what cannot change after creation, storage behavior, limits, HA, replicas, and safe deletion. Deep dives live under references/.
Apply this skill when the user:
databases / readReplicas or wires fromDatabaseFor deploy flows and Blueprint basics, see render-deploy and render-blueprints. For private networking between services, see render-networking. For env var patterns, see render-env-vars.
Render exposes two connection URLs for the same logical database:
| URL | Use when | TLS |
|---|---|---|
| Internal | App or service on Render in the same region and workspace | Not required (private network) |
| External | Local development, CI, or tools outside Render | Required (TLS 1.2+) |
Always prefer the internal URL for Render-hosted apps so traffic stays on Render’s network and avoids extra latency and public egress patterns.
sslmode errors.URL formats, Dashboard locations, Blueprint fromDatabase, pooling, and common mistakes: references/connection-guide.md.
databaseName, database user, region, PostgreSQL major version. Plan these before create; changing them requires a new database and migration.Wire apps with Blueprint fromDatabase using property: connectionString (or host, port, user, password, database individually). See render-blueprints.
You can run CREATE DATABASE new_db; in psql on the same instance. Host, port, and credentials stay the same; only the database name in the URL path changes (e.g. .../myapp vs .../new_db).
Monitor disk and plan exports or cleanup before you hit hard limits. Backup and restore options: references/backup-and-recovery.md.
Maximum connections depend on instance RAM (current-generation plans):
| RAM | Max connections (typical) |
|---|---|
| Under 8 GB | 100 |
| 8 GB | 200 |
| 16 GB | 300 |
| 32 GB and above | 500 |
Legacy database plans may have lower limits; confirm in the Dashboard or API for the specific plan.
Render does not provide a built-in pooler; use application-side pooling (framework pools, PgBouncer, pgpool, etc.). Limits are hard—exhausting them causes connection errors. More detail: references/connection-guide.md and references/performance-tuning.md.
High availability (HA) is available when:
Instance type changes cause brief downtime. With HA, downtime is typically less than without HA (often on the order of minutes without HA—exact duration depends on plan and operation).
One-way migration off legacy types: After moving to current-generation instance types, you cannot move back to legacy instance types.
readReplicas as a list of names.readReplicas list can destroy all existing replicas.Always treat readReplicas as authoritative desired state, not additive-only.
Use the Render MCP tools (names may vary slightly by integration; align with your server’s tool list):
| Goal | Tool / pattern |
|---|---|
| List databases | list_postgres_instances |
| Instance details | get_postgres with postgresId |
| Read-only SQL | query_render_postgres with postgresId and sql |
| Connection load | get_metrics with resourceId (Postgres ID) and metricTypes: ["active_connections"] |
query_render_postgres runs in a read-only transaction and opens a new connection per query—do not use it as a substitute for app pooling.
Shorthand (same tools): list_postgres_instances(), get_postgres(postgresId), query_render_postgres(postgresId, sql), get_metrics(resourceId, metricTypes: ["active_connections"]).
pg_dump, Dashboard restore workflow from existing backups, etc.).references/backup-and-recovery.md.| Document | Contents |
|---|---|
references/connection-guide.md | Internal vs external URLs, SSL, allow list, Blueprint wiring, pooling, multi-database URLs, troubleshooting |
references/backup-and-recovery.md | Snapshots, PITR, pg_dump / pg_restore, restore flows, deletion, cross-region |
references/performance-tuning.md | pg_stat_statements, indexes, bloat, EXPLAIN ANALYZE, metrics, scaling |
databases, fromDatabase, readReplicas, immutable fieldsDATABASE_URL and secret wiring patterns11c74d6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.