7

.mwb ファイルにあるモデルからフォワード エンジニアリングを実行できる必要があります。プロセスを自動化したいので、これらすべてをコマンドラインから行います。

これが可能かどうか、また可能であれば方法を教えてください。

4

3 に答える 3

5

これは、次のコマンドで 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 ヘルプを参照してください。

于 2012-03-05T13:45:34.807 に答える
3

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オプションで実行できると思います。

于 2013-12-05T17:36:02.483 に答える