Skip to main content

dbqm — Database Query Manager

A fullscreen terminal app and a scriptable CLI for running SQL across Oracle, SQL Server, PostgreSQL and MySQL — from one place, with one set of saved connections.

Built with Textual. Credentials are encrypted at rest; nothing is ever written to your shell history.

📖 Full documentation on GitHub


Install

pip install dbqm

Python 3.10+. Database drivers come with it.

Windows on ARM: some drivers have no win-arm64 wheel and are skipped automatically. Use Python AMD64 (it runs under x64 emulation) — see the README.

Oracle connections additionally need the Oracle Instant Client. dbqm can download and install it for you from Settings › Oracle Instant Client.

Use it interactively

dbqm

An eight-tab dashboard (F1F8): ad-hoc SQL, connections, an object browser, multi-database comparison, history, saved queries and tools. Fully keyboard-driven, dark and light themes.

On first launch it creates ~/.dbqm/, generates an encryption key and walks you through your first connection.

Use it from a script

Every operation below is non-interactive — no prompts, no TTY required, which is what makes dbqm usable from CI or from an AI agent.

# Create a connection. The password is piped, never passed in argv.
echo "s3cret" | dbqm connection add prod --type oracle --mode direct \
    --host db.example.com --port 1521 --service ORCL --user admin \
    --password-stdin --test

# Run SQL. -f json for a machine, -f raw to pipe a CLOB somewhere else.
dbqm sql "SELECT * FROM pedidos WHERE status = :s" prod -p s=PAGO -f json

# Save a query once, run it with different parameters later.
dbqm run pedidos-em-aberto -p data_inicio=2026-01-01

# Compare the same logical query across environments.
dbqm run-group conciliacao-diaria -p data=2026-01-01

# Get an execution plan in one step (no EXPLAIN PLAN FOR boilerplate).
dbqm sql "SELECT * FROM pedidos WHERE cliente_id = :id" prod --explain -p id=42

# See a database's shape: what exists, one object's columns/keys/indexes,
# and a table's rows, paged.
dbqm objects prod --type TABLE
dbqm describe pedidos prod
dbqm rows pedidos prod --limit 20

# Extract DDL, browse connections, review history.
dbqm ddl PKG_FATURAMENTO prod
dbqm connection list -f json
dbqm history -n 20

--help on any command lists its flags.

What it does

  • Saved queries with parameters, organised in folders, with favourites and a DE-PARA column mapping for values that differ between systems.
  • Cross-database comparison — run the same logical query against several connections and get a per-row OK / DIFF / ABSENT verdict, as a table or an interactive HTML report.
  • Object browser — tables, views, routines and Oracle packages: columns, primary keys, foreign keys and indexes, without writing catalogue SQL.
  • Ad-hoc SQL — SELECT, CTEs, DML, DDL with compilation-error detection, and anonymous PL/SQL blocks with DBMS_OUTPUT captured and shown.
  • Execute routines — packages, procedures and functions, with parameter input and output capture.
  • Package editor for Oracle PL/SQL, with inline compilation errors.
  • Read-only connections — mark a connection so dbqm refuses anything but a query on it, with a one-invocation --force-write override for dbqm sql.
  • Exports — CSV, JSON, TXT, SQL and HTML reports, plus IDE-style execution evidence (the SQL, the connection, the timestamp, the outcome) for an audit trail you can hand to someone else.
  • Portable configuration — export and import your connections and queries as an encrypted .dbqm bundle.

Security

  • Connection passwords are encrypted at rest with Fernet.
  • Passwords are read from stdin or an environment variable, never from argv — they do not reach your shell history or the process table.
  • Queries use bind variables; SQL identifiers are validated against an allowlist.
  • HTML reports escape every user-controlled value.

Links

MIT licensed.

Release files for dbqm 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbqm 2.6.0
File Size Uploaded
dbqm-2.6.0.tar.gz 272.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dbqm 2.6.0
File Interpreter ABI Platform
dbqm-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 546.5 kB

Release files / dbqm-2.6.0.tar.gz

Download URL dbqm-2.6.0.tar.gz
Size 272.5 kB
Tags Source
SHA-256 checksum
How to use checksums
610e4d8b60d52e7eb90c6f954ef7ea8bd30254fedd36857fb4b2dfad27fcbd37
BLAKE2b-256 checksum
How to use checksums
6740ab47b4540e849123cae532f4e6e9c45c1bd99226e5ddc85e3cc54190e825
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dbqm-2.6.0-py3-none-any.whl

Download URL dbqm-2.6.0-py3-none-any.whl
Size 274.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d75237f646f4d2bf65f0580efd719d758317a3765d47bbf39a43d1d81c1f76b
BLAKE2b-256 checksum
How to use checksums
db916c7dc9ea4b530d89f5627172f35e7bbe66dd56cc2d3d5b436b35e550d4fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

2.12.0

2 release files

2.11.1

2 release files

2.11.0

2 release files

2.9.0

2 release files

This release

2.6.0 This release

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.0.0

2 release files

1.23.0

2 release files

1.22.2

2 release files

1.22.1

2 release files

1.22.0

2 release files

1.21.0

2 release files

1.18.0

2 release files

1.17.0

2 release files

1.16.0

2 release files

1.15.2

2 release files

1.15.1

2 release files

1.15.0

2 release files

1.14.1

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release files

1.11.1

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page