构建自动化与MySQL Workbench脚本编写:正向生成SQL CREATE脚本
2017-5-23 11:45:48
收藏:0
阅读:135
评论:1
我目前正在研究自动化软件构建过程,该过程包括在MySQL Workbench中定义的数据库模式。
使用Workbench的脚本功能,我想打开一个Workbench文档并将其模式导出为SQL CREATE脚本。
我想知道的是,是否有一个函数可以将整个架构作为Workbench的_File_ | Export | _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()
这个问题与How to generate SQL Script from MySQL Workbench using Command Line?有关,但是在那里找到的答案实际上很抽象,并没有关于实际使用MySQL Workbench的脚本功能的说明。
原文链接 https://stackoverflow.com/questions/3967692
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
似乎其他相关问题在2013年12月得到了解答,由madhead提供,尽管存在一些微不足道的代码错误,且使用的是Python而不是Lua,所以这里是对我来说可行的Python版本:
# -*- coding: utf-8 -*- # MySQL Workbench Python script # <description> # Written in MySQL Workbench 6.0.8 import os import grt from grt.modules import DbMySQLFE c = grt.root.wb.doc.physicalModels[0].catalog DbMySQLFE.generateSQLCreateStatements(c, c.version, { 'GenerateDrops' : 1, 'GenerateSchemaDrops' : 1, 'OmitSchemata' : 1, 'GenerateUse' : 1 }) DbMySQLFE.generateSQLCreateStatements(c, c.version, {}) DbMySQLFE.createScriptForCatalogObjects(os.path.dirname(grt.root.wb.docPath) + '/ddl.sql', c, {})
相较于循环变量,看起来有些庞大,但_可能_会带来一些好处(尚未测试,但我可以想象Workbench能够找出正确的表格创建顺序等)。
另外,我不确定在我提出问题时是否存在这个版本,但不管怎样,这在最近的一个版本上运行良好。