| Feature | pgquery | pgAdmin 4 |
|---|---|---|
| Runs as | One Go container; open in any browser | Desktop app, or a Python web server |
| Settings and saved connections | PartlyIn your browser only | YesOn the server, per user |
| Own login and user accounts | No | Yes |
| Many servers in one tree | PartlySaved connections list | Yes |
| SSH tunnel | No | Yes |
| SQL editor with autocomplete | YesMonaco, schema-aware | Yes |
| Visual EXPLAIN | YesTree, time share, misestimates | YesGraphical plan |
| ER diagram | YesExport as SVG / PNG plate | YesERD tool, can generate SQL |
| Row Level Security policies | Yes | Yes |
| Performance advisor | YesUnused indexes, bloat, cache, seq scans | PartlyServer activity dashboard |
| Security advisor | YesScored audit | No |
| pg_stat_statements view | Yes | PartlyVia SQL |
| Backup and restore (pg_dump) | No | Yes |
| Import / export CSV | PartlyExport only | Yes |
| PL/pgSQL debugger | No | Yes |
| Schema diff | No | Yes |
| Maintenance (VACUUM, ANALYZE, REINDEX) dialogs | PartlyRun them in the editor | Yes |
| License | MIT | PostgreSQL License |
Where pgquery wins
- Up in one command, with no Python runtime and no settings database.
- A Monaco editor with tabs that survive a reload, plus history and saved queries.
- Performance and security advisors that tell you what to fix, not just graphs.
- Schema changes made through forms are shown as SQL before they run.
Where pgquery loses
- pgAdmin has user accounts; pgquery has no login of its own.
- Backup / restore, the PL/pgSQL debugger, schema diff and CSV import are pgAdmin-only.
- SSH tunnels and server groups: pgAdmin manages a whole fleet; pgquery is one database at a time.
- pgAdmin is maintained by the PostgreSQL community and has a decade of hardening.
Use both
They don't conflict. Run pgquery for daily querying and the advisors, and keep pgAdmin around for backups and debugging:
docker run -p 54280:54280 ghcr.io/hxndrik/pgquery
pgquery listens on port 54280.