Je hebt een datamigratie uitgevoerd en moet de resultaten verifiëren. Of je vergelijkt een ontwikkeldatabase met een staging-kopie. Of een collega heeft je zijn versie van een gedeelde database gestuurd en je moet de verschillen ontdekken. In elk geval is de taak hetzelfde: kijk naar twee SQLite-databases en achterhaal wat er is veranderd. Op Mac maken de meeste tools dit verrassend moeilijk omdat ze zijn ontworpen rond één databaseverbinding.
Waarom databases vergelijken meestal pijnlijk is
Met de sqlite3 CLI betekent het vergelijken van twee databases dat je twee terminalvensters opent, dezelfde query in elk uitvoert en de output visueel scant op verschillen. Voor kleine tabellen werkt dit. Voor tabellen met honderden rijen en tientallen kolommen is het foutgevoelig en traag. Er is geen weergave naast elkaar, geen markering van verschillen — alleen twee stromen platte tekst.
Sommige ontwikkelaars gebruiken sqldiff, een command-line tool die de SQL-instructies uitvoert die nodig zijn om de ene database in de andere te veranderen. Het is krachtig voor gescripte vergelijkingen, maar produceert ruwe SQL-output, geen visuele diff. Begrijpen wat er daadwerkelijk is veranderd vereist het lezen van INSERT-, UPDATE- en DELETE-statements in plaats van de data zelf te zien.
De meeste GUI-databasebrowsers verergeren het probleem doordat ze slechts één database tegelijk ondersteunen. Je opent database A, inspecteert deze, sluit ze, opent database B en probeert je te herinneren wat je in database A zag. Sommige tools ondersteunen meerdere verbindingen, maar vereisen handmatige instelling voor elk.
Open beide databases naast elkaar met Tome
Tome is een documentgebaseerde macOS-app, wat betekent dat elke database in zijn eigen venster opent met zijn eigen volledige interface. Open twee databases en rangschik ze naast elkaar met macOS Gesplitste weergave of door vensters te slepen — dezelfde manier waarop je twee tekstbestanden zou vergelijken.
Visuele schemavergelijking
Met beide databases geopend, controleer je de zijbalk van elk venster. Heeft de bron tabellen die de bestemming niet heeft? Zijn indexen aanwezig in de ene maar ontbreken ze in de andere? Een visuele blik op beide zijbalken beantwoordt deze vragen direct.
Vergelijking op rijniveau
Open dezelfde tabel in beide vensters en scroll door de data. Sorteer beide op dezelfde kolom om rijen uit te lijnen. Verschillen in rijaantal of datawaarden worden zichtbaar wanneer je beide rasters tegelijk kunt zien.
Query beide onafhankelijk
Elk venster heeft zijn eigen SQL-query-editor. Voer dezelfde aggregatiequery uit in beide — SELECT COUNT(*) FROM users; — en vergelijk resultaten naast elkaar. Schrijf complexere queries om sommen, gemiddelden of het bestaan van specifieke records in elke database onafhankelijk te controleren.