我目前正在研究自动化软件构建过程,其中包括MySQL Workbench中定义的数据库模式.
使用Workbench的脚本功能,我想打开一个Workbench文档并将其模式导出为SQL CREATE脚本.
我想知道的是,如果有一个出口在整个架构中的一个步骤作为工作台的功能文件 | 出口 | 正向工程SQL CREATE脚本,自动处理表之间的任何依赖关系.
我在DbMySQL模块中发现了一些候选人可能会这样做(generateSQL(GrtNamedObject, dict, string)和makeSQLExportScript(GrtNamedObject, dict, dict, dict)),但是我对他们期望的参数感到困惑 - 第一个可能是架构对象,但其他参数是什么?
谁能告诉我我的假设是否正确和/或提供我的使用示例?
到目前为止,我已经提出了一个手动解决方案(请注意,这目前不会根据他们的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()
Run Code Online (Sandbox Code Playgroud)
问题与如何使用命令行从MySQL Workbench生成SQL脚本有关?但是,答案发现这里确实是抽象的,并且没有说明实际使用MySQL Workbench的脚本功能.