·4 Min. Lesezeit

So vergleichst du SQLite-Datenbanken nebeneinander auf dem Mac

Nach einer Migration, Schema-Änderung oder Datensynchronisation ist es mühsam zu überprüfen, ob zwei SQLite-Datenbanken übereinstimmen, wenn man sie nicht gleichzeitig anzeigen kann.

Du hast eine Datenmigration durchgeführt und musst die Ergebnisse überprüfen. Oder du vergleichst eine Entwicklungsdatenbank mit einer Staging-Kopie. Oder ein Kollege hat dir seine Version einer gemeinsamen Datenbank geschickt und du musst die Unterschiede erkennen. In jedem Fall ist die Aufgabe dieselbe: zwei SQLite-Datenbanken betrachten und herausfinden, was sich geändert hat. Auf dem Mac machen die meisten Tools das überraschend schwierig, weil sie für eine einzelne Datenbankverbindung konzipiert sind.

Warum Datenbanken vergleichen normalerweise mühsam ist

Mit dem sqlite3-CLI bedeutet das Vergleichen zweier Datenbanken, zwei Terminalfenster zu öffnen, dieselbe Abfrage in jedem auszuführen und die Ausgabe visuell nach Unterschieden zu scannen. Für kleine Tabellen funktioniert das. Für Tabellen mit Hunderten von Zeilen und Dutzenden von Spalten ist es fehleranfällig und langsam. Es gibt keine Nebeneinander-Ansicht, keine Hervorhebung von Unterschieden — nur zwei Ströme von reinem Text.

Manche Entwickler nutzen sqldiff, ein Kommandozeilentool, das die SQL-Anweisungen ausgibt, die nötig sind, um eine Datenbank in die andere zu transformieren. Es ist leistungsstark für geskriptete Vergleiche, produziert aber rohe SQL-Ausgabe, keinen visuellen Diff. Zu verstehen, was sich tatsächlich geändert hat, erfordert das Lesen von INSERT-, UPDATE- und DELETE-Anweisungen statt der Daten selbst.

Die meisten GUI-Datenbank-Browser verschärfen das Problem, da sie nur eine Datenbank gleichzeitig unterstützen. Du öffnest Datenbank A, inspizierst sie, schließt sie, öffnest Datenbank B und versuchst dich zu erinnern, was du in Datenbank A gesehen hast. Manche Tools unterstützen mehrere Verbindungen, erfordern aber manuelles Setup für jede einzelne.

Beide Datenbanken nebeneinander öffnen mit Tome

Tome ist eine dokumentbasierte macOS-App, was bedeutet, dass jede Datenbank in einem eigenen Fenster mit einer eigenen vollständigen Oberfläche geöffnet wird. Öffne zwei Datenbanken und ordne sie nebeneinander an mit macOS Split View oder durch Ziehen von Fenstern — genau wie du zwei Textdateien vergleichen würdest.

Tome vergleicht zwei SQLite-Datenbanken nebeneinander auf dem Mac

Visueller Schema-Vergleich

Mit beiden geöffneten Datenbanken überprüfe die Seitenleiste jedes Fensters. Hat die Quelle Tabellen, die das Ziel nicht hat? Sind Indizes in der einen vorhanden, aber in der anderen nicht? Ein visueller Scan beider Seitenleisten beantwortet diese Fragen sofort.

Vergleich auf Zeilenebene

Öffne dieselbe Tabelle in beiden Fenstern und scrolle durch die Daten. Sortiere beide nach derselben Spalte, um Zeilen auszurichten. Unterschiede in der Zeilenzahl oder bei Datenwerten werden sichtbar, wenn du beide Raster gleichzeitig sehen kannst.

Beide unabhängig abfragen

Jedes Fenster hat seinen eigenen SQL-Abfrage-Editor. Führe dieselbe Aggregationsabfrage in beiden aus — SELECT COUNT(*) FROM users; — und vergleiche die Ergebnisse nebeneinander. Schreibe komplexere Abfragen, um Summen, Durchschnitte oder das Vorhandensein bestimmter Datensätze in jeder Datenbank unabhängig zu überprüfen.

Tome im Mac App Store laden

Nächster Artikel

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store