我目前正在研究自动化软件构建过程,其中包括 MySQL Workbench 中定义的数据库模式。
使用 Workbench 的脚本功能,我想打开一个 Workbench 文档并将其模式导出为 SQL CREATE 脚本。
我想知道的是是否有一个函数可以一步将整个模式导出为 Workbench 的File | 出口| Forward Engineer SQL CREATE Script,自动处理表之间的任何依赖关系。
我在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()
该问题与如何使用命令行从 MySQL Workbench 生成 SQL 脚本有关?,但是发现那里的答案真的很抽象,并没有说明实际使用 MySQL Workbench 的脚本功能。