Skip to content

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.

The connection dialog is just a file picker — no host, port, user, password, or SSL. SQLite is a file; you tell Quay which file.

FieldNotes
Database fileabsolute path; ~ expands
Tagas 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.

  • Plain SQL backup — Free tier gets .dump-equivalent output, written natively (no sqlite3 shell-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 .sql file before running; validates CREATE TABLE references, flags DROP TABLE.
  • Schema diff — works between two SQLite files or between SQLite and any other engine.

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.

  • EXPLAIN tipsEXPLAIN QUERY PLAN output 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.

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.

  • 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.

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.