SQLite
SQLite is a full v1 dialect in Quay (locked decision). Same parity with MySQL/MariaDB: schema browser, query, edit, backup, restore, schema diff, edit-as-draft. No “lite” treatment.
Connection
Section titled “Connection”The connection dialog is just a file picker — no host, port, user, password, or SSL. SQLite is a file; you tell Quay which file.
| Field | Notes |
|---|---|
| Database file | absolute path; ~ expands |
| Tag | as usual — dev / prod / etc. |
For new databases: pick a directory + filename, Quay creates the
file on first connect (PRAGMA foreign_keys = ON is set
automatically). For existing databases: pick the file.
Native tools
Section titled “Native tools”- Plain SQL backup — Free tier gets
.dump-equivalent output, written natively (nosqlite3shell-out). Topological FK ordering- ATTACH-aware for cross-DB references.
- File-copy backup — Pro tier adds a “fast file-copy” path that
uses
VACUUM INTO …for an atomic snapshot. Used by the scheduled-backup CLI for SQLite schedules. - Restore preview — parses the
.sqlfile before running; validatesCREATE TABLEreferences, flagsDROP TABLE. - Schema diff — works between two SQLite files or between SQLite and any other engine.
Edit-as-draft
Section titled “Edit-as-draft”Same buffer mechanics as every other engine — cell edits stage,
⌘S commits in a single transaction. SQLite’s WAL mode lets the
buffer commit be near-instant even on large tables.
Deep features (Pro tier)
Section titled “Deep features (Pro tier)”- EXPLAIN tips —
EXPLAIN QUERY PLANoutput gets parsed; the rule engine surfaces table-scan / index-not-used / temp-B-tree warnings. SQLite’s plan format is simpler than PG/MySQL, so the tips are more terse but no less actionable. - VACUUM ANALYZE — surfaced as a one-click button on the schema panel; runs in a background thread + reports duration + bytes reclaimed.
- PRAGMA panel — every PRAGMA the engine exposes, with current-value lookup + safe-edit semantics.
File-locking gotchas
Section titled “File-locking gotchas”SQLite uses OS-level file locks. If another process is writing to
the file (or the file is on a network share that doesn’t honor
POSIX advisory locks correctly), Quay surfaces the
SQLITE_BUSY / SQLITE_LOCKED error verbatim. The fix is rarely
on Quay’s side — close the other writer, switch to WAL mode,
or move the file off NFS.
Limits
Section titled “Limits”- Database size: SQLite supports up to 281 TB. Quay handles multi-GB files fine; the schema browser virtualises so 100k tables in one file work.
- Concurrent writers: one. SQLite writes serialise; Quay shows this in the connection chip if a write is queued behind another. WAL mode makes readers + a single writer concurrent.
Why SQLite is full-tier-Free
Section titled “Why SQLite is full-tier-Free”The locked decision (April 2026): SQLite ships as a first-class dialect, not a “lite Free engine to upsell from”. Reason — SQLite is the engine most users meet first (every iOS / Android app, every Tauri / Electron app, every standalone tool ships with one), so it’s the best showcase for “Quay is a real database client” without asking them to spin up Postgres.