The PostgreSQL advisor for teams that ship.

pgdba runs 68 read-only health checks against your Postgres 13–17 database, ranks what to fix first, and migrates databases server-to-server — nothing writes without an explicit flag.

68read-only checks
22flags & config keys explained
41glossary terms
PG 13–17supported
MITlicensed

Two commands to a healthier database

$ uv tool install pgdba
$ pgdba config init        # probes your connection, writes pgdba-run.toml (chmod 600)
$ pgdba check              # read-only check, zero flags

Advises, never surprises

Every session is a read-only transaction with a statement timeout. Remediation is printed, ranked, and only executed when you explicitly --apply it — per-action confirm included.

Safe lane migrations

Server-to-server migration with preflight gates (version, locale, extensions, disk, scope), confirm prompts, resume, and post-copy verification. Dry-run with --plan-only first.

Plain language by design

Every finding carries a why, a cost-of-ignoring, and an ignore-if. Every flag has a safe default you can look up from the terminal: pgdba check --explain-flag pooled.

Reach for pgdba when…

Your CI deploys blind

A pre-deploy gate that fails the pipeline when the database the diff is about to hit is unhealthy.

The app is slow and nobody knows why

One read-only run ranks what hurts, with remediation and ignore-if for every finding.

You are moving a database

Gates, resume, and verification — a junior can drive the cutover from the safe lane.

Run your first check in 60 seconds.

Get started