Командная строка для разработки с использованием файла .mwb? - PullRequest
7 голосов
/ 04 марта 2012

Мне нужно иметь возможность выполнить прямое проектирование из модели, расположенной в файле .mwb . Все это из командной строки, поскольку я хотел бы автоматизировать процесс.

Может кто-нибудь, пожалуйста, дайте мне знать, если это возможно, и если да, то как?

Ответы [ 3 ]

5 голосов
/ 05 марта 2012

Это вывод в командной строке после вызова WB с --help:

mysql-workbench [<options>] [<model file>]
Options:
  --force-sw-render      Force Xlib rendering
  --force-opengl-render  Force OpenGL rendering
  --query <connection>   Open a query tab to the named connection
  --admin <instance>     Open a administration tab to the named instance
  --model <model file>   Open the given EER model file
  --script <script file> Execute the given Python or Lua script file
  --run <script>         Execute the given code in default language for GRT shell
  --run-python <script>  Execute the given code in Python
  --run-lua <script>     Execute the given code in Lua
  --quit-when-done       Quit Workbench when the script is done
  --help, -h             Show command line options and exit
  --log-level=<level>    Valid levels are: error, warning, info, debug1, debug2, debug3
  --verbose              Enable diagnostics output
  --version              Show Workbench version number and exit

Я полагаю, что вы можете загрузить свою модель, используя опцию --model, а затем создать скрипт, который будет выполнять прямое проектирование, запускать его, используя опцию --run, а затем дать команду WB выйти после завершения работы с --quit-when-done. опция.

Вы можете обратиться к справке WB, чтобы узнать больше о создании сценариев, а также это руководство .

3 голосов
/ 14 июня 2015

Этот вопрос слишком старый, но я нашел проект на github, который делает это, под командами в окнах cmd, и здесь хранилище github и другие версии файла linux sh.

Windows

@echo off
REM generate sql from mwb
REM usage: mwb2sql.bat {.mwb file} {output file}

SET WORKBENCH="C:\Program Files (x86)\MySQL\MySQL Workbench 6.0 CE\MySQLWorkbench.exe"
SET OUTPUT=%~f2
%WORKBENCH% ^
  -open %~f1 ^
  -run-python "import os;import grt;from grt.modules import DbMySQLFE as fe;c = grt.root.wb.doc.physicalModels[0].catalog;fe.generateSQLCreateStatements(c, c.version, {});fe.createScriptForCatalogObjects(os.getenv('OUTPUT'), c, {})" ^
  -quit-when-done
3 голосов
/ 05 декабря 2013

На самом деле вы можете автоматизировать эту задачу с помощью скрипта Python (или Lua) - MySQL Workbench уже имеет интерпретатор в меню 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, {})

Он не запускается из командной строки, но я полагаю, вы можете запустить его с параметром --run-script.

...