Командная строка для разработки с использованием файла.mwb?
Мне нужно иметь возможность выполнять прямое проектирование из модели, расположенной в файле.mwb. Все это из командной строки, поскольку я хотел бы автоматизировать процесс.
Может кто-нибудь, пожалуйста, дайте мне знать, если это возможно, и если да, то как?
3 ответа
Это вывод в командной строке после вызова 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, чтобы узнать больше о создании сценариев, а также это руководство.
На самом деле вы можете автоматизировать эту задачу с помощью скрипта 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
вариант.
Этот вопрос слишком старый, но я нашел проект на github, который делает это, ниже команд в окнах cmd, а здесь - хранилище github и более подробная версия linux sh file.
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