Build-Automatisierung und MySQL-Workbench Scripting: Forward Engineer SQL CREATE SCRIPT

9

Ich bin derzeit dabei, einen Software-Build-Prozess zu automatisieren, der ein in MySQL Workbench definiertes Datenbankschema enthält.

Mit den Scripting-Funktionen von Workbench möchte ich ein Workbench-Dokument öffnen und sein Schema als SQL-CREATE-Skript exportieren.

Ich würde gerne wissen, ob es eine Funktion gibt, die das gesamte Schema in einem Schritt als Datei von Workbench exportiert Exportieren | Forward Engineer-SQL-CREATE-Skript , das automatisch Abhängigkeiten zwischen Tabellen verarbeitet.

Ich habe im Modul DbMySQL einige Kandidaten gefunden, die das tun könnten ( generateSQL(GrtNamedObject, dict, string) und makeSQLExportScript(GrtNamedObject, dict, dict, dict) ), aber ich bin verwirrt über die erwarteten Parameter - die erste könnte das Schema-Objekt sein, aber was sind die anderen Argumente?

Kann mir jemand sagen, ob meine Annahme richtig ist und / oder mich mit Anwendungsbeispielen versorgen?

Bisher habe ich eine manuelle Lösung gefunden (beachten Sie, dass die Tabellen derzeit nicht nach ihren FK-Beziehungen sortiert werden):

%Vor%

Die Frage bezieht sich auf How to Generieren Sie SQL-Skript von MySQL Workbench mit Command Line? , aber die dort gefundene Antwort ist wirklich abstrakt und sagt nichts über die Verwendung der Skriptfunktionen von MySQL Workbench aus.

    
Archimedix 19.10.2010, 11:07
quelle

1 Antwort

3

Scheint, dass andere verknüpfte Fragen bekam im Dezember 2013 geantwortet, mit freundlicher Genehmigung von madhead , wenn auch mit kleinen trivialen Code-Fehlern und in Python anstatt Lua, also hier die Python-Version, die für mich funktioniert:

%Vor%

Sieht ziemlich groß im Vergleich zur Loop-Variante aus, aber könnte Vorteile bringen (nicht getestet, aber ich könnte mir vorstellen, dass Workbench in der Lage ist, die richtige Reihenfolge zum Erstellen von Tabellen usw. zu finden) / p>

Ich bin mir auch nicht sicher, ob das schon existierte, als ich die Frage gestellt habe, aber trotzdem funktioniert das auf einer neuen Version.

    
Archimedix 13.11.2014, 17:21
quelle