Betrachten Sie die folgende Einstellung:
- Eine Produktions-DB
- Eine dev db, an der Schemaänderungen vorgenommen werden, um neue Funktionen zu aktivieren
Wenn die Entwicklung eines neuen Features abgeschlossen ist, muss das prod db-Schema manuell aktualisiert werden, bis es pg_dump --schema-only
auf beiden DBs identisch ist. Dieser Vorgang ist fehleranfällig und mühsam.
Daher suche ich ein Tool, das Folgendes kann:
- Zeigen Sie eine Zusammenfassung der Unterschiede zwischen zwei Schemas (wie
diff
). Beachten Sie, dass ich nicht nur nach einem textuellen Unterschied des Schemas suche, sondern nach einem ausgefeilteren Tool, das Schlussfolgerungen wie "TabelleX
hat eine neue SpalteY
" ziehen kann. - Generieren Sie automatisch den SQL-Code, der ein Schema in ein anderes konvertiert (wie
patch
)
Gibt es ein Schema- Diff / Patch- Tool, mit dem ich Produktschemata in die fortgeschritteneren Dev-Schemata konvertieren kann?
postgresql
schema
Adam Matan
quelle
quelle
Antworten:
Tut mir leid, eine alte Frage wiederzubeleben
Vor kurzem habe ich das
0xDBEDataGrip- Datenbankverwaltungstool von JetBrains verwendet.Es unterstützt mehrere Datenbank-Engines in der hervorragenden Jetbrains-IDE. Eine meiner wichtigsten Funktionen ist die Möglichkeit,
diff
zwei Tabellen (DEV und PROD) zu erstellen.Unten ist ein Screenshot des Unterschieds in Aktion (in diesem Fall gibt es nur einen Spaltenunterschied). Der Screenshot ist das Ergebnis der Schaltfläche "Rechts zusammenführen" oben, mit der die SQL generiert wird, die erforderlich ist, um die richtige Tabelle auf den neuesten Stand zu bringen.
Hoffe, dieses neue Tool hilft.
quelle
Database
Menü auf der linken Seite die 2 Tabellen aus, mit denen Sie vergleichen möchten (mit dercmd/ctrl + click
rechten Maustaste ), und wählen SieCompare
Verwenden Sie Liquibase .
Es unterstützt Diff , generiert eine Datenbank von Grund auf neu, repariert eine Datenbank, setzt eine Datenbank zurück und eine Reihe anderer Dinge.
Früher musste man mit liquibase alles in XML schreiben, aber nicht mehr. Sie können 99% davon in den SQL-Dialekt Ihrer Wahl schreiben. Beispiel:
Sie sollten Ihre Liquibase-Änderungsprotokolle in Git oder What-Have-You aufbewahren.
quelle