2017-09-18 1 views
1

Ich muss die Ergebnisse von zwei mysql-Dumps von einer Test-DB und einer Dev-Datenbank vergleichen. Ich habe andere Fragen hier gesehen, die ähnliche Fragen stellen, aber ich muss bestimmte Felder wie "created_at" und "updated_at" ausschließen können. Hat jemand etwas Ähnliches gemacht und kann mir einige Tools/Ressourcen zeigen, die mir helfen könnten?Vergleichen von 2 MySQL-Datenbanken

Alle Hilfe ist dankbar, danke.

+0

Wie groß sind die Datenbanken? Wenn klein genug, würde ich sie klonen, die nicht benötigten Spalten löschen, die Daten ablegen und ein Diff-Tool für die .sql-Dateien verwenden – Steve

Antwort

2

Sie können MySQL mysqldbcompare verwenden, um zwei Datenbanken zu vergleichen, die eine diff-formatierte Ausgabe erzeugt, die die Unterschiede zeigt. Es tut nicht alles, was du gesagt hast, also musst du ein paar zusätzliche Schritte machen. Hauptsächlich:

  1. Es werden nicht zwei MySQL-Dump-Dateien verglichen. Stattdessen vergleicht es Datenbanken. Wenn Sie also Dump-Dateien haben, müssen Sie vorübergehend ein paar Datenbanken erstellen und Ihre Dump-Dateien importieren.

  2. Soweit ich aus der Dokumentation ersehen kann, erlaubt es Ihnen nicht, bestimmte Felder auszuschließen. Wenn Sie also das Diff analysieren, müssen Sie diese manuell ausschließen. Sie können es möglicherweise über grep durchleiten, um Felder zu ignorieren, die Sie nicht betreffen.

0

bestimmte Felder auszuschließen Sie es in der select-Anweisung enthalten nicht nur, können Sie mehr bei https://www.w3schools.com/php/php_mysql_select.asp

zum Beispiel SELECT id, Vorname, Nachname von Nutzern, nicht created_at und SELECT id enthalten , Vorname, Nachname, created_at FROM Benutzer enthalten created_at Feld