0251 / 590 837 15
info@a-coding-project.de

MySQL Datenbanken vergleichen mit Toad

Updates zu erstellen kann eine komplexe Aufgabe sein. Bei jedem Update besteht das Risiko irgendetwas kaputt zu machen. Deshalb sollte man dort auf Automatisierung setzen. Ich habe mir zum Bau eines Update-Pakets für mein CMS mal das Tool Toad for MySQL angeschaut, mit dem man Datenbanken vergleichen und synchronisieren kann.

MySQL Toad wird auf dem (Windows-)Desktop installiert, ein offener MySQL-Port am Server ist somit leider erforderlich. Aber vielleicht könnt ihr ja auch einfach ein Backup der Datenbank vom Server machen und lokal einspielen, um das Risiko zu umgehen.

Schema vergleichen

Um zu starten muss man oben links im Connection-Manager eine Verbindung zu beiden Datenbanken herstellen. Danach kann über Tools>Compare>Schema Compare der Vergleich der Datenbankschema stattfinden. Es öffnet sich ein Dialog, in den man die beiden Verbindungen auswählen kann:

Toad - Datenbank auswählen

Toad - Datenbank auswählen


Bei Source muss die neue Datenbank und bei Target die alte Datenbank angegeben werden.
Nach dem Klick auf Compare startet Toad den Vergleich der Datenbanken.
Toad Datenbank Vergleich

Das Ergebnis zeigt dann den Aufbau der Datenbanken im Vergleich. Bei mir sieht das folgendermaßen aus:

Ergebnis

Wenn man oben in der Symbolleiste auf „Synchronize“ klickt, kann man ein Script generieren, mit dem man die zweite Datenbank auf den aktuellen Stand bringen kann. Auf Wunsch kann dies auch sofort ausgeführt werden. Ich empfehle euch das Script vorher noch einmal durchzulesen und vorher ein Backup zu machen. Schließlich können das schon harte Sachen, wie das Löschen von Tabellen sein. Da ist Vertrauen gut, aber Kontrolle besser.

Nach dem Überspielen können die Tabellen nochmal verglichen werden. Es kann sein, dass nicht alles übernommen wurde. Dies kann aus technischen Gründen auch gar nicht gemacht werden, da die Daten darin vielleicht dem neuen Schema nicht entsprechen. Bei mir gab es zum Beispiel Probleme mit NOT NULL. Aber diese Probleme kann man dann ja auch von Hand beheben.

Daten vergleichen

Wenn der Aufbau erst mal gleich ist können auch die Daten miteinander verglichen werden. Dies geht über Tools>Compare>Data Compare:

Auch hier kann man wieder die beiden Verbindungen angeben.

Tabellenauswahl

Tabellenauswahl

In diesem Fenster müssen dann die zu vergleichenden Tabellen ausgewählt werden. Mit „Map All“ kann man alle Tabellen auf einmal auswählen. Das Ergebnis ist auf dem ersten Blick etwas verwirrend, aber schaut selbst:

Ergebnis Datenvergleich

Ergebnis Datenvergleich

Auf dem zweiten Blick nimmt die Verwirrung dann doch ein Ende. Man wählt oben die Tabelle aus und sieht unten was sich geändert hat. Auch hier kann man mit „Synchronize Wizard“ ein SQL-Script generieren lassen. Wobei man im Gegensatz zum Schema aber vermutlich noch auswählen muss, welche Daten wirklich übertragen werden sollen.

Fazit

Das Tool hat mir einiges an Zeit erspart! Die Oberfläche ist zwar etwas gewöhnungsbedürftig, aber es muss ja auch nicht schön sein. Ein Vergleich der Datenbanken verringert das Risiko von Problemen bei Updates, da man nicht versehentlich etwas übersieht.

Kommentare

Daniel schrieb am 04.03.2012:

Du meinst doch bestimmt unser CMS ;-)

Stefan Wienströer schrieb am 05.03.2012:

klar ;-)

Jupp schrieb am 18.09.2012:

Dolle Karte! :/