Infra Atlas · Toolbox

Database & Data.

The default SQL clients that ship with databases — psql, mysql — are functional but hostile. Better clients exist. Beyond the client problem, this department covers schema migration (the part that bites you in production) and the universal query layer that lets you forget which CLI each database needs.

Form
Language
Use case
Picks
pgcli replaces psql

A better PostgreSQL CLI: auto-completion for table names, columns, functions, and keywords with a popup menu; syntax highlighting; multi-line editing that doesn't break pasting; \d commands that work. Same connection syntax as psql — pgcli postgres://user:pass@host/db — so it's a drop-in replacement. If you use PostgreSQL at all, there is no reason to use psql over pgcli.

CLI Python mature dev
dbcli/pgcli
usql replaces db-specific CLI per engine

Universal SQL CLI: one binary, one syntax, one set of backslash commands for PostgreSQL, MySQL, SQLite, SQL Server, Oracle, BigQuery, Redshift, DynamoDB, and 40+ others. usql pg://host/db vs usql mysql://host/db — the connection string prefix is the only thing that changes. Removes the friction of remembering which client, which port, which flags for each database you touch.

CLI Go mature dev
xo/usql
Atlas replaces hand-written migration files

Schema migration tool with a declarative model: define the desired schema state, let Atlas figure out the diff, generate the migration. Works with PostgreSQL, MySQL, MariaDB, SQLite, and others. Unlike Flyway or Liquibase, Atlas validates migrations against lint rules (no DROP COLUMN without backfill, no unique index creation on a non-empty table without CONCURRENTLY) before you run them. Also does schema inspection and drift detection.

CLI Go mature platform
ariga/atlas
DBeaver Community replaces Sequel Pro / TablePlus / DataGrip for OSS use

Cross-platform desktop GUI client for practically every database: PostgreSQL, MySQL, SQLite, MongoDB, Redis, Cassandra, and 100+ more via JDBC. Schema browser, query editor with auto-complete, data export, ER diagrams. The Community edition is fully OSS (Apache 2.0) and covers all database types without a paywall. Heavier than TablePlus (Java-based), but the only OSS option with true multi-database breadth.

GUI Java mature dev
dbeaver/dbeaver
dbmate replaces raw SQL migration files with no tooling

Lightweight migration tool: up/down SQL files, a db/migrations/ directory, and a schema.sql that's always in sync with your migrations. Language-agnostic (runs as a standalone binary), works with PostgreSQL, MySQL, SQLite, and ClickHouse. The minimal choice when you want migration versioning without pulling in an ORM or a heavyweight framework. Popular in polyglot services and Go projects that don't want to add an ORM dependency.

CLI Go mature platform
amacneil/dbmate
*

DBeaver is the only GUI-form tool in this department — it installs as a native desktop application, not a web interface. Atlas and dbmate solve similar problems differently: Atlas is declarative (desired state → migration generated); dbmate is imperative (you write the SQL, it tracks versions). Atlas is the more powerful choice; dbmate is the simpler one for teams that want full control over their SQL.