mysqldbcompare - mysql workbench compare two databases



Vergleichen Sie zwei MySQL-Datenbanken (14)

Aus der Feature-Vergleichsliste ... MySQL Workbench bietet Schema Diff und Schema-Synchronisation in ihrer Community-Edition.

https://src-bin.com

Ich entwickle gerade eine Anwendung, die eine MySQL-Datenbank verwendet.

Die Datenbankstruktur ist immer noch in Bewegung und ändert sich während der Entwicklung (ich ändere meine lokale Kopie und lasse die auf dem Testserver allein).

Gibt es eine Möglichkeit, die beiden Instanzen der Datenbank zu vergleichen, um festzustellen, ob Änderungen vorgenommen wurden?

Während die bisherige Testserver-Datenbank einfach einfach verworfen werden kann, kann es beim Testen mit der Eingabe von Testdaten etwas knifflig werden.
Das gleiche wird jedoch später in der Produktion wieder passieren ...

Gibt es eine einfache Möglichkeit, schrittweise Änderungen an der Produktionsdatenbank vorzunehmen, indem automatisch ein Skript erstellt wird, um es zu ändern?

In den Antworten erwähnte Tools:



Answer #2

Es gibt ein nützliches Tool, das mit Perl namens Maatkit . Es hat unter anderem mehrere Tools zum Vergleichen und Synchronisieren von Datenbanken.



Answer #4

Für den ersten Teil der Frage, ich mache nur eine Dump von beiden und diff sie. Nicht sicher über mysql, aber postgres pg_dump hat einen Befehl, um einfach das Schema ohne den Inhalt der Tabelle auszugeben, so dass Sie sehen können, ob Sie das Schema geändert haben.


Answer #5

Für mich würde ich damit beginnen, beide Datenbanken zu dumpen und die Dumps zu diffundieren, aber wenn Sie automatisch generierte Merge-Skripte wollen, werden Sie ein echtes Tool erhalten wollen.

Eine einfache Google-Suche ergab folgende Tools:


Answer #6

Ich benutze eine Software namens Navicat um:

  • Synchronisieren Sie Live-Datenbanken mit meinen Testdatenbanken.
  • Unterschiede zwischen den beiden Datenbanken anzeigen

Es kostet Geld, es ist Windows und Mac nur, und es hat eine verrückte Benutzeroberfläche, aber ich mag es.


Answer #7

Ich denke Navicat für MySQL wird für diesen Fall hilfreich sein. Es unterstützt Daten- und Struktursynchronisierung für MySQL.




Answer #10

Wenn Sie nur Schemas (keine Daten) vergleichen und Zugriff auf Perl haben müssen, könnte mysqldiff funktionieren. Ich habe es verwendet, weil Sie lokale Datenbanken mit entfernten Datenbanken vergleichen können (über SSH), so dass Sie keine Daten verschwenden müssen.

http://adamspiers.org/computing/mysqldiff/

Es wird versuchen, SQL-Abfragen zu generieren, um zwei Datenbanken zu synchronisieren, aber ich traue ihm (oder jedem Tool) nicht. Soweit ich weiß, gibt es keine 100% zuverlässige Möglichkeit, die Änderungen rückgängig zu machen, die für die Konvertierung eines Datenbankschemas in ein anderes erforderlich sind, insbesondere wenn mehrere Änderungen vorgenommen wurden.

Wenn Sie beispielsweise nur den Typ einer Spalte ändern, kann ein automatisiertes Tool leicht erraten, wie dieses neu erstellt werden soll. Wenn Sie aber auch die Spalte verschieben, umbenennen und andere Spalten hinzufügen oder entfernen, ist das Beste, was ein Softwarepaket tun kann, die Vermutung, was wahrscheinlich passiert ist. Und am Ende verlieren Sie möglicherweise Daten.

Ich würde vorschlagen, dass Sie alle Schemaänderungen, die Sie am Entwicklungsserver vornehmen, im Auge behalten und diese Anweisungen dann manuell auf dem Live-Server ausführen (oder sie in ein Upgrade-Skript oder eine Migration rollen). Es ist mühsamer, aber es schützt Ihre Daten. Und wenn Sie anfangen, Endbenutzern Zugriff auf Ihre Site zu gewähren, werden Sie wirklich ständig umfangreiche Datenbankänderungen vornehmen?


Answer #11

check: http://schemasync.org/ Das schemasync-Tool funktioniert für mich, es ist ein Kommandozeilen-Tool, das problemlos in der Linux-Befehlszeile funktioniert


Answer #12

Werfen Sie einen Blick auf dbForge Data Compare für MySQL . Es ist eine Shareware mit 30-tägiger kostenloser Testphase. Es ist ein schnelles MySQL-GUI-Tool für Datenvergleich und -synchronisation, Verwaltung von Datenunterschieden und anpassbare Synchronisation.


Answer #13

Toad verfügt über Funktionen zum Vergleichen von Daten und Schemas, und ich glaube, es wird sogar ein Synchronisationsskript erstellt. Das Beste von allem, es ist Freeware.





diff