Ist es möglich, zwei Datenbanken mit identischer Struktur zu vergleichen? Angenommen, ich habe zwei Datenbanken DB1 und DB2 und möchte prüfen, ob zwischen ihnen ein Datenunterschied besteht.
postgresql
schema-compare
Sennin
quelle
quelle
Antworten:
Es gibt verschiedene Tools:
(Beachten Sie, dass die meisten dieser Tools nur die Struktur vergleichen können, nicht jedoch Daten.)
Freie:
Kommerziell:
quelle
apgdiff
das Erben von Tabellen nicht gut unterstützt wird und Ausnahmen sofort ausgelöst werden, wenn ich versuche, sie zu verwenden.WbSchemaDiff
funktioniert sehr gut, Überraschung!Versuchen Sie,
pg_dump
beide Datenbanken zu verwenden und die Dateien zu unterscheiden.quelle
pg_dump
ist in Ordnung. Wenn Sie signifikante Unterschiede feststellen,pg_dump
versuchen Sie wahrscheinlich, Dinge zu vergleichen, die nicht vergleichbar sind. Zumindest zum Vergleich von PG dbs.psql -c '\x' -c 'SELECT... ORDER BY...'
anstelle von benutzepg_dump
.Eine weitere kostenlose App (die nur Struktur, aber keine Daten vergleichen kann ):
DBeaver - Sie können Datenbanken, Tabellen usw. auswählen, um sie miteinander zu vergleichen
quelle
Ich habe viele Tools evaluiert und folgende Lösung gefunden:
Schemavergleich :
Am interessantesten waren Liquibase, Persyas und PgCodeKeeper:
( Problem ) Liquebase konvertiert:
in
Daher wurde die Verwendung abgelehnt
( Problem ) Persyas hat einwandfrei funktioniert, bis ich ein zusätzliches Schema hinzugefügt habe und es beginnt Folgendes zu werfen:
Also habe ich festgestellt, dass PgCodeKeeper perfekt funktioniert und lebt (Sie können Releases überprüfen). Ich benutze folgenden Befehl:
Datenvergleich: Ich habe versucht, Liquebase zu verwenden, und es funktioniert einfach nicht. Sie können die Schritte sehen, die ich in meiner unbeantworteten Frage zum Datenunterschied zweier Datenbanken mit Liquebase versucht habe
Also habe ich ein anderes Projekt gefunden SQL Workbench / J Es funktioniert wirklich gut und generiert Reall Diff in SQL. Ich benutze folgenden Befehl:
Beide Tools unterstützen die Objektfilterung. Es ist wirklich praktisch.
Migrationen
Und schließlich benutze ich Liquebase nur für die Migration / Versionsverfolgung.
quelle
Ich arbeite an einem umfassenden Vergleichstool für Postgres. Es wird kostenlos sein, während in der Beta.
PostgresCompare
Anfangs ist dies nur ein Schema (DDL) -Vergleich, aber wir werden wahrscheinlich auch auf Daten erweitern. Ich glaube, dies ist ein Tool, das viele Shops benötigen, um von ihrem aktuellen RDBMS zu wechseln, ohne auch die Funktionsweise ihrer Entwicklungsumgebungen, Vorgänge usw. ändern zu müssen.
quelle
Das beste Tool, das ich je gesehen habe https://pythonhosted.org/Pyrseas/
Holen Sie sich Dump aus der Datenbank A dbtoyaml ...
Migration von A => B yamltodb generieren ... [Datei in Schritt 1 generiert]
quelle
Ich suche auch nach einem Tool zum Vergleichen von Daten in Datenbanken (insbesondere war ich daran interessiert, Redshift DB zu vergleichen). Bisher ist das Beste, was ich gefunden habe, https://www.dbbest.com/products/database-compare-suite/#close . Leider läuft die kostenlose Testversion nach einem Tag ab.
quelle
Ich habe ein Tool erstellt, um 2 Live-PostgreSQL-Datenbanken (keine Dumps), Tabellendaten und Sequenzen zu vergleichen. Ziemlich früh, aber erreicht, was ich wollte, vielleicht kann es Ihnen auch helfen.
https://github.com/dmarkey/pgdatadiff
quelle
Meiner Meinung nach ist Dbforge das leistungsstärkste Tool zum Komprimieren von Daten in Postgresql. Es ist ein Produkt der Firma Devart. Sie können es hier herunterladen .
quelle