Actualmente estoy buscando la automatización de un proceso de compilación de software que incluya un esquema de base de datos definido en MySQL Workbench.Automatización de compilación y MySQL Workbench Scripting: reenviar SQL SQL CREATE SCRIPT
Utilizando las capacidades de scripting de Workbench, me gustaría abrir un documento de Workbench y exportar su esquema como un script SQL CREATE.
Lo que me gustaría saber es si hay una función que exporta el esquema completo en un solo paso como de archivos de Workbench | Exportación | Forward Engineer SQL CREATE Script, manejando automáticamente cualquier dependencia entre tablas.
he encontrado algunos candidatos en el módulo DbMySQL
que podría hacer que (generateSQL(GrtNamedObject, dict, string)
y makeSQLExportScript(GrtNamedObject, dict, dict, dict)
), sin embargo estoy confundido acerca de los parámetros que esperan – el primero podría ser el objeto de esquema, pero ¿cuáles son los otros argumentos?
¿Alguien podría decirme si mi suposición es correcta y/o darme ejemplos de uso?
Hasta ahora, he llegado a una solución manual (tenga en cuenta que este momento no ordena las tablas en función de sus relaciones 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 pregunta está relacionada con How to generate SQL Script from MySQL Workbench using Command Line?, sin embargo la respuesta encontrado que es realmente abstracto y no dice nada sobre el uso de las características de scripting de MySQL Workbench.
¿Alguna pista sobre qué opción usar para excluir ciertas tablas de la exportación, como es posible en la GUI? – sebastian
Ver mi pregunta. Utiliza 'foreach_table_all()', y la función de devolución de llamada puede verificar la tabla y decidir no escribirla. Simple como eso. – Archimedix
¿Hay alguna manera de colocar el identificador de esquema en este enfoque? – sebastian