Attualmente sto esaminando l'automazione di un processo di generazione software che include uno schema di database definito in MySQL Workbench.Creazione automazione e MySQL Workbench Scripting: Forward Engineer SQL CREATE SCRIPT
Utilizzando le funzionalità di scripting di Workbench, vorrei aprire un documento Workbench ed esportare il suo schema come uno script SQL CREATE.
Quello che mi piacerebbe sapere è se esiste una funzione che esporta l'intero schema in un unico passaggio come il file di Workbench | Export | Programmatore di inoltro SQL CREATE Script, gestisce automaticamente qualsiasi dipendenza tra le tabelle.
ho trovato alcuni candidati nel modulo DbMySQL
che potrebbe fare che (generateSQL(GrtNamedObject, dict, string)
e makeSQLExportScript(GrtNamedObject, dict, dict, dict)
), però io sono confuso circa i parametri che si aspettano – il primo potrebbe essere l'oggetto dello schema, ma quali sono gli altri argomenti?
Qualcuno potrebbe dirmi se la mia ipotesi è corretta e/o fornirmi esempi di utilizzo?
Finora, mi è venuta in mente una soluzione manuale (notare che questo momento non ordinare le tabelle in base alle loro relazioni FK):
local o = assert(io.open("/tmp/create.sql", "wb"));
foreach_table_all(function (t)
o:write(DbMySQL:makeCreateScriptForObject(t) .. ";\n\n")
end)
o:close()
La questione è legata alla How to generate SQL Script from MySQL Workbench using Command Line?, tuttavia la risposta trovato che è molto astratto e non dice nulla sull'utilizzo effettivo delle funzionalità di scripting di MySQL Workbench.
Qualche suggerimento su quale opzione utilizzare per escludere determinate tabelle dall'esportazione, come è possibile nella GUI? – sebastian
Vedere la mia domanda. Usa 'foreach_table_all()', e la funzione di callback può controllare la tabella e decidere di non scriverla. Semplice come quella. – Archimedix
Un modo per eliminare l'identificatore dello schema in questo approccio? – sebastian