2010-07-13 327 views
5

我目前使用FinalBuilder来创建一个单击构建n'生成安装,但是我面临MySQL Workbench缺乏从命令行生成SQL脚本的能力。如何使用命令行从MySQL Workbench生成SQL脚本?

+0

请你能澄清为什么这是一个问题,你想做什么? – Cez 2010-07-13 21:35:24

+0

如果没有Workbench的命令行能力,我该如何自动执行建筑操作? – 2010-07-13 22:19:23

+0

您使用Workbench的目的是什么?据我所知,它没有命令行界面。 – Cez 2010-07-15 11:33:14

回答

0

MySQL Workbench具有完整的Python脚本API。

如果你需要额外的功能,请让我们知道: http://forums.mysql.com/index.php?151

  • MySQL工作台
+1

Tnx。我一定会检查这个API。拥有一个CLI应用程序肯定是一个很酷的功能,它可以从mwb文件生成SQL。因此,可以使用MySQL Workbench GUI设计数据库模式,然后单击自动部署过程(在开发过程中,我的意思是)可以在数据库模式上执行所有操作。保持一切干爽。但我相信这可以通过上面提到的Python API完成。 – maraspin 2010-12-10 11:07:37

+0

链接不会导致API ... – 2013-07-29 15:14:01

4

实际上,你可以自动与Python(或LUA)这个任务脚本 - MySQL工作台已经有一个口译员在Scripting菜单下。创建一个新的脚本,并使用存根:

# -*- coding: utf-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, {}) 

它不actully运行命令行,但我beleive你可以--run-script选项运行它。

+2

谢谢!这基本上可行(并且我也将你的答案并入了[我的问题的答案](http://stackoverflow.com/a/26914679/419404)),尽管脚本中存在一些小错误:它应该读取'DbMySQLFE .generateSQLCreateStatements(c,c.version,{})'和'+'/ ddl.sql'。 – Archimedix 2014-11-13 17:23:26