DB Evolution, mysqldiff?

Ekki_

Neuer Benutzer
Beiträge
1
Tag.

Wir (eine kleine Firma) lassen uns gerade eine Warenwirtschaft bauen, die auf MySQL basieren wird. Von dem Dienstleister bekommen wir nun zum Test regelmässig MySQL Dumps die wir auf unserem lokalen Server einspielen und testen.

Zur Migration der vorhandenen Datenbank entwickeln wir lokal ein kleines Tool. Das Problem nun: Wie stelle ich fest, was sich von einer Version zur anderen in der Datenbank verändert hat? Da gibt es dieses Utility "mysqldiff", das mir eine etwas simple Liste ausgibt, welche Tabellen in DB1 drin sind und nicht in DB2 und umgekehrt.
Laut Hilfe auf mysql.com soll es einen Parameter '--difftype' geben, der z.B. beim Wert 'sql' ein Transformations-Script (ALTER TABLE ....) ausspucken soll um von DB1 zu DB2 zu kommen. Das passiert aber nicht. Die Ausgabe von 'mysqldiff' ist immer die Gleiche, egal welchen Wert ich beim --difftype angebe. Gibt es da irgendeinen Trick?

P.S.: Das ähnlich gestaltete Utility 'mysqldbcompare' sagt mir nur, das die beiden Version unterschiedlich sind und ist damit auch nicht sehr hilfreich.


Bonusfrage :)
Ich habe auf einer frühen Version basierend mit MySQL Workbench ein ERP Diagramm gebaut. Das war recht aufwendig, die DB enthielt damals ca. 170 Tabellen, diverse Views, SPs usw. Nun kommt die neue Version der DB, ich spiele die ein und - was? Fange von vorne an mein Diagramm aufzuräumen? Öh, das kanns doch irgendwie nicht sein. Gibt es da eine bessere Vorgehensweise? Also einen Workflow was die Evolution einer DB angeht?

Danke!

Gruß,
Ekki
 
Werbung:
Tag.

Wir (eine kleine Firma) lassen uns gerade eine Warenwirtschaft bauen, die auf MySQL basieren wird.

Viel Spaß mit MySQL.


Gibt es da eine bessere Vorgehensweise? Also einen Workflow was die Evolution einer DB angeht?

Ich hab mal einen Vortrag von Zalando gesehen, wie die das machen. War sehr cool. Aber die nutzen auch kein MySQL.

Ich denk mal, bei Datenbanken ist es sinnvoll, Änderungen am Schema via SQL zu machen - und das kann man dann auch nachvollziehbar gestalten. Das sollte Euch Eurer Dienstleister in die Hand geben - immerhin vertraut ihr ihm ja blind.


Bei Zalando war/ist es aber so, daß da die komplette Geschäftslogig in der DB war/ist, und Änderungen der ganzen Funktionen, die die API darstellen, erfolgten durch Änderung des search_path. Das macht sanfte Migrationen möglich - und zur Not ein schnelles Fallback.
 
Werbung:
Zur Entwicklung gehört nunmal auch Dokumentation und da würde ich vom Dienstleister auch erwarten das er Veränderungen gegenüber einer früheren Version dokumentiert. Natürlich kann man sich das sparen aber muss dann leider auch mit den Nachteilen leben oder es selbst irgendwann machen um die Kosten zu sparen. Ein Automatismus ist mir nicht bekannt.

Was das ERD angeht würde ich es eventuell mit einem externen Tool machen. Viele Tools können sich an einen bestehenden DB Server connecten und Tabellen und Relationen auslesen, die meisten aber leider ein bestehendes ERD nicht "aktualisieren" sondern nur um neu anlegen.

Vor geraumer Zeit hatte ich mal Software Ideas Modeler im Test, habe auch noch eine größere Doku vor mir. http://www.softwareideas.net/ Der läßt sich zumindest umsonst testen, ich weiß aber leider nicht was er in der aktuellen Version genau kann. Habe damals auch nur einen Einmal-Import machen können und habe Änderungen manuell nachgetragen.
 
Zurück
Oben