QueryDeck Docs
Connections

Connect to SQLite

Open a SQLite file with the picker, work offline, and use read-only mode for production dumps.

For: everyone. SQLite needs no server, no password, and no network.

SQLite is a single file on disk. QueryDeck opens it with the macOS file picker and queries it through GRDB.swift on top of the SQLite library shipped with macOS.

Open a SQLite file

  1. Click Add Connection in the sidebar.
  2. Pick SQLite as the engine.
  3. Click Choose File... and select your database file.
  4. Give the connection a name and color.
  5. Save.

Common file extensions QueryDeck recognizes:

  • .sqlite
  • .sqlite3
  • .db
  • .db3
  • Any extension if you pick it through "All Files" in the dialog

Read-only mode

If you're inspecting a production database dump and want to be sure no edit can slip through, toggle "Read-only" in the connection editor. QueryDeck opens the file with the SQLite read-only flag. Any INSERT, UPDATE, DELETE, or DROP you try to run returns an error immediately.

This is independent of file system permissions. Read-only mode at the connection level beats a writable file every time.

File location and sandboxing

QueryDeck is sandboxed. When you pick a file the first time, macOS grants the app a security-scoped bookmark for that path. The bookmark is saved with the connection so QueryDeck can reopen the file on its own next time.

If you move or rename the file, the bookmark becomes stale. QueryDeck will prompt you to relocate it. There is no data loss, just a re-pick step.

iOS and mobile app databases

QueryDeck is excellent for inspecting iOS app data:

  • Copy the database file out of the simulator or device using Xcode's container inspector.
  • Open it in QueryDeck.
  • Browse sqlite_master to see your Core Data or GRDB schema.

Common locations for app database files:

  • Core Data: usually a .sqlite file inside the app group container
  • GRDB: a .sqlite file at a path the app defines, often under Application Support

Limitations

  • No journal file editing. WAL and SHM files are managed by SQLite automatically. Do not open them directly.
  • No multi-writer setups. SQLite allows one writer at a time. If your app is writing to the file while QueryDeck has it open, you may see database is locked errors. Quit the app or use read-only mode.
  • :memory: is not supported as a connection target. The file picker requires a real path.

What's next