Docs / Databases

← Guide

Databases

One page for each database: how to connect, what the login needs, what works and what does not, and which versions the test suite runs on. Connecting explains the parts every database shares (SSH, proxy, the keychain, projects), Troubleshooting the errors, and FEATURES.md is the reference by feature.

PageDatabases
PostgreSQLPostgreSQL, CockroachDB, YugabyteDB, TimescaleDB, Supabase, Neon, AlloyDB
MySQLMySQL, MariaDB
SQLiteSQLite
SQL ServerSQL Server, Azure SQL
OracleOracle Database
ClickHouseClickHouse
DuckDBDuckDB, and CSV, JSON, Parquet and Excel files
libSQLlibSQL (sqld), Turso
MongoDBMongoDB
RedisRedis
ElasticsearchElasticsearch, OpenSearch
CassandraApache Cassandra, ScyllaDB
ADBCSnowflake, BigQuery, Databricks, Trino, any other ADBC driver
Db2 and ODBCIBM Db2, any ODBC driver or data source (Windows)

Azure SQL, Supabase, Neon, AlloyDB, Turso's cloud, Snowflake, BigQuery, Databricks and IBM Db2 are listed because the app has a driver, a preset or a tile for them; nobody has run the app against those services (see "Tested on" below and on each page).

What works where

"Rows" is editing in the grid. "Admin" is the server tabs of Server activity… (sessions, locks, dashboard, costliest statements, tables and indexes, parameters, users and roles, maintenance). A dash is "not available"; "untested" means the app does not block it but nothing runs it.

DatabaseDefault portManual commitCancelExplainRowsAdmin
PostgreSQL5432yesyesplan, analyzeyesall
CockroachDB, YugabyteDB26257, 5433yesyesplan, analyzeyes–
MySQL, MariaDB3306yesyesplan; analyze on MySQL 8.0.18+ and MariaDByesall
SQL Server1433yesyesestimated planyesall; ends sessions, cannot cancel another's statement
Oracle1521yesyesestimated planyes–
ClickHouse8123 (8443 with TLS)–yesplan–parameters, dashboard, users
SQLitea fileyesyesquery planyesparameters
DuckDBa fileyesyesplan, analyzeyesparameters
libSQL, Turso443 (80 without TLS)yes–query planyes–
MongoDB27017–yes–––
Redis6379MULTI/EXEC onlyyes–yes–
Elasticsearch, OpenSearch9200–yes–yes–
Cassandra, ScyllaDB9042–yes–yes, by full primary key–
Snowflake, BigQuery, Databricks, Trinosee the page–yes–––
Db2, other ODBC50000 for Db2yesyes–untested–

"Admin" on CockroachDB and YugabyteDB is off because those servers lack parts of what the tabs call (CockroachDB has no pg_blocking_pids or pg_terminate_backend, YugabyteDB keeps its locks elsewhere). The databases with no SQL (MongoDB, Redis, Elasticsearch, Cassandra) also have no table editor, ER diagram, schema comparison, query builder, SQL import, snapshots before changes or query plans; their pages say what they have instead.

Every database gets the editor, the grid and the navigator. Rows in the grid are found by the table's primary key, a unique key on non-null columns, or a virtual key you set.

Drivers downloaded on first use

PostgreSQL, MySQL, SQL Server, SQLite, libSQL, ClickHouse, MongoDB, Redis, Elasticsearch and Cassandra are built into the app. The others need a library that the app downloads once:

DatabaseWhat is downloadedFrom
DuckDBDuckDB's library, 2.0.0DuckDB's release on GitHub
OracleOracle Instant Client, Basic Light 23.26.4 (Windows, Linux; not macOS)Oracle
IBM Db2IBM Data Server Driver for ODBC and CLI 12.1.4 (Windows)IBM
Snowflake, BigQuery, Databricks, Trinotheir ADBC driverthe dbc driver registry (Columnar)

When you pick the database for a new connection, and the library is not on this machine, a popup opens over the form that says what it is, its version and size, its license and where it comes from, and that the download is checked against a SHA-256. Download fetches it (Windows asks for administrator permission to register IBM's driver); Cancel leaves the form usable. The offer returns at Test connection and at the first opening. The check reads only this machine, so it appears offline, and the download needs the network. Settings › Drivers lists, updates and removes what was downloaded.

Versions

The oldest version each database is checked against, and what the conformance suite runs on (docker/compose.yml and the versions profile). A server older than the minimum connects with a warning that some features may not work, except Cassandra, ScyllaDB, Elasticsearch and OpenSearch, which refuse it.

DatabaseMinimumThe suite runs on
PostgreSQL1212, 14, 16, 17
MySQL5.75.7, 8.0, 8.4
MariaDB10.610.6, 11.4
SQL Server20172017, 2022
MongoDB5.05.0, 8.0
Redis6.0Redis Stack 7.4
Elasticsearch, OpenSearch7.10, 1.08.15.3, 2.17.1
Cassandra, ScyllaDB4.0, 5.45, 2025.1
ClickHousenone26.3
TimescaleDB, CockroachDB, YugabyteDBnone2.30 (on PostgreSQL 17), 26.2, 2025.2
libSQL (sqld)none0.24.33
OraclenoneFree 23.26
Trinonone484
SQLite, DuckDBnonethe version built into the app, DuckDB 2.0

Not tested at all: Azure SQL, Supabase, Neon, AlloyDB, Turso's cloud, Snowflake, BigQuery, Databricks and IBM Db2.

Agents

Agents and the CLI works on every database above. The differences are on each page: how a read-only session is made (the server refuses writes on PostgreSQL, CockroachDB, YugabyteDB, MySQL, MariaDB, SQLite, DuckDB and ClickHouse; everywhere else the statement check alone), and what is refused (explain on MongoDB, Redis, Elasticsearch and Cassandra; get_er_diagram on MongoDB, Redis and Elasticsearch; propose_edits wherever the grid does not edit rows by key: Redis, Elasticsearch, Cassandra, ClickHouse and the ADBC databases; on MongoDB it names documents by _id). server_activity and top_queries work on PostgreSQL, MySQL, MariaDB and SQL Server.