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.
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.
Database evidence
Review your output, then save it to your device.
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
Local read-only SQLite engine
Exact 64-bit integer and BLOB representation
Schema, integrity, foreign-key and row comparison
Understand the evidence.
Focused guides explain the rules, the edge cases and the checks worth doing before you act.
Compare two SQLite snapshots without changing them
Use exact types and honest row matching to understand changes.
Read the guide ↗Field guide / 02Export SQLite tables while retaining exact values
Keep integer, real, text, NULL and binary values distinguishable.
Read the guide ↗Field guide / 03Read SQLite integrity and foreign-key findings correctly
Distinguish structural validity from relational and snapshot completeness.
Read the guide ↗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.
Sources & assumptions
Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.
- SQLite file format ↗
Database pages and WAL journal state are separate concerns.
- SQLite WAL documentation ↗
Uncheckpointed changes can reside in the WAL sidecar.
- SQLite PRAGMA checks ↗
Integrity and foreign-key checks answer different questions.
- sql.js typed results ↗
BigInt result extraction avoids rounding stored 64-bit integers.
Reviewed 2026-10-19. Read our methodology or report an issue.