SQLiteEasy

Support

A SQLite client for macOS · This page covers SQLiteEasy 1.4.

Get in touch

Added since the first release

Schema Map (added in version 1.2)

Draws every table in a database and the foreign keys between them, laid out the same way every time. Reach it with ⇧⌘M, the toolbar button, or by right-clicking a table in the sidebar. Three levels of detail; click a table to open it in a query tab; zoom, fit to the window, and export as PNG. A composite foreign key is drawn as one relationship rather than one per column, and a foreign key pointing at a table that no longer exists is flagged rather than quietly dropped.

Compare Databases (added in version 1.3)

Shows what differs between two SQLite files, or between a database and a schema snapshot saved earlier. Reach it with ⇧⌘D, the toolbar button, or the View menu.

Save Snapshot (added in version 1.3)

Writes a database’s schema to a file so it can be compared against later, without needing the original database. The snapshot holds the schema only — no table contents.

Questions people actually ask

Why does the row count say “1–512 of ?”

Because SQLite cannot say how many rows a query returns without running it to the end. Rather than guess, SQLiteEasy shows what it has read and keeps reading as you scroll. Count All Rows gives you the total; it runs a separate query and is labelled as such.

Why can’t I edit this result?

SQLiteEasy only edits a result when it can identify exactly which stored row each displayed row came from. Joins, aggregates and computed columns have no single row an edit could mean; views need INSTEAD OF triggers, which it will not write for you; a WITHOUT ROWID table needs its whole primary key in the query. The reason is always shown under the grid.

The filter only found a few rows — is that all of them?

No, and it says so. The filter bar searches the rows already read, which on a large table is a fraction of them, so it always shows the denominator. Use Filter in the Database to search the whole table — it composes the same filter as SQL and puts it in the editor for you to run.

A cell shows a size instead of a value

Values over 1 MB are never loaded into the grid; that limit is what keeps memory bounded however far you scroll. Press ⌘I to open the inspector, which fetches the value on demand and can save any size to a file.

My edit was refused

Every update carries the row’s original values in its WHERE clause. If the row changed after you read it, the write matches nothing and is reported rather than replacing someone else’s work. Refresh and try again.

Can it repair a corrupt database?

No, deliberately. File › Check Database reports what SQLite finds and explains the options, but every automatic repair works by discarding what it could not read. That decision is yours to make, on a copy.

Requirements

SQLiteEasy 1.4 lowered its minimum from macOS 15.6 to macOS 14.0. If it previously said your Mac was not supported, it will install now.

SQLiteEasy itself makes no network connections. See the privacy policy.