Two snapshots. Explainable differences. / KitForma

Compare SQLite databases and export exact typed tables

Turn a SQLite snapshot into inspectable evidence and portable data. Compare by safe primary keys when available, or by complete typed rows with duplicate counts preserved.

No account neededRuns in your browserFree to use
SQLite Compare & ExportLOCAL WORKSPACE
Choose · review · download
From question to next step

SQLite Compare & Export

The example includes an exact 64-bit ID, Unicode, BLOBs, NULL/empty values, a WITHOUT ROWID table, a foreign-key issue and deliberate changes in a second database.

Supported scope: SQLite 3 files up to 32 MiB each; 64 ordinary tables, 256 columns/table, 20,000 rows/table, 100,000 rows and 1 million cells total per file, decoded values up to 64 MiB; worker timeout 45 seconds. No encrypted SQLCipher/SEE, attached databases, WAL sidecar merge, virtual-table data, arbitrary SQL, repair or applied migrations.

Database files

Required fields are marked with an asterisk.

01

Loading the local tool… Your files stay in this browser.

Database evidence

Review your output, then save it to your device.

02

Make the next step clear.

Your findings, assumptions and next steps will appear here after you run the check.

SQLite Compare & Export · https://sqlite.kitforma.com/ · KitForma

01

Local read-only SQLite engine

02

Exact 64-bit integer and BLOB representation

03

Schema, integrity, foreign-key and row comparison

Good questions

Before you start

Will the tool change either database?

No. Each supplied file is copied into a local worker and opened with query_only enabled. The interface does not accept arbitrary SQL or apply migrations. The original files stay unchanged.

Can it compare SQLite integer IDs without rounding?

Yes. Integer results are read through BigInt and represented as exact decimal strings with a separate integer type in JSON. This includes values above JavaScript’s safe integer range. CSV importers can still guess numeric types, so use the JSON or import columns explicitly as text.

How are changed rows matched?

A declared primary key is used only when both snapshots have matching key definitions and every key is unique and non-NULL in each snapshot. Otherwise comparison uses complete typed rows as a multiset, preserving duplicate counts. Without a trustworthy key, a changed row appears as one removal and one addition.

Does it include my database WAL file?

No. Obtain a safe backup or close and checkpoint the source database before selecting it. Copying an active database without its WAL can omit committed updates. A successful integrity check cannot prove that your standalone snapshot includes every recent transaction.

What is in the export ZIP?

Each selected table has exact typed JSON, a values CSV and a companion cell-types CSV. The package also includes a manifest and source schema SQL. BLOBs use hex, NULL has its own type, and formula-like CSV text is neutralized. Review schema SQL before executing it elsewhere.

Are virtual tables, encryption and corruption supported?

Virtual tables are recorded but not queried or exported. Encrypted databases and WAL sidecars are rejected. Integrity failures stop processing. The product provides inspection and comparison, not password recovery, repair or a guarantee that a live file copy was consistent.

The evidence behind the check

Sources & assumptions

Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.

Reviewed 2026-10-19. Read our methodology or report an issue.

Essential local storage remembers this choice for up to 180 days. Your choice applies to this subdomain. Global Privacy Control and Do Not Track override optional measurement.

Advertising has a separate choice. Use Advertising preferences in the footer to allow or reject the optional guide-page banner.