.mwb ファイルにあるモデルからフォワード エンジニアリングを実行できる必要があります。プロセスを自動化したいので、これらすべてをコマンドラインから行います。
これが可能かどうか、また可能であれば方法を教えてください。
.mwb ファイルにあるモデルからフォワード エンジニアリングを実行できる必要があります。プロセスを自動化したいので、これらすべてをコマンドラインから行います。
これが可能かどうか、また可能であれば方法を教えてください。
これは、次のコマンドで 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
オプションで実行できると思います。