は、.mwbファイルにあるモデルからフォワードエンジニアリングを実行する必要があります。私はプロセスを自動化したいので、コマンドラインからこれをすべて行います。.mwbファイルを使用したコマンドラインフォワードエンジニアリング?
これが可能かどうか誰にでも教えてください。どうすればいいですか?
は、.mwbファイルにあるモデルからフォワードエンジニアリングを実行する必要があります。私はプロセスを自動化したいので、コマンドラインからこれをすべて行います。.mwbファイルを使用したコマンドラインフォワードエンジニアリング?
これが可能かどうか誰にでも教えてください。どうすればいいですか?
これは、あなたが--help
でWBを呼び出した後、コマンドラインで出力されます。
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
オプションを使用して、--quit-when-done
オプションを指定して終了するとWBに指示します。
this guideと同様に、スクリプト作成の詳細については、WBヘルプを参照してください。
Sergioに感謝します。私は提供されたサンプルを見て、スクリプトを書くのを始めます。 – balteo
実際に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, {})
それはactullyコマンドラインから実行されませんが、私はあなたが--run-script
オプションでそれを実行することができます信じ。
コマンドラインからうまく動作します(WBを実行するためにダミーのXサーバが必要でした)... *しかし、私は自分の意見に問題があります。 一部のビューでは他のビューが使用されていますが、スクリプトの作成では、アカウントの依存関係が記録されます。 つまり、私がvAとvBの2つのビューを取得し、vBが 'select somefield FROM vA'のようなもので定義されていれば、ビューAの前にビューBを生成しようとするSQLスクリプトで終わるかもしれません。もちろん、エラーが発生します: 'テーブル 'vA'は存在しません。 ' これを修正するための考え方はありますか? – Balmipour
@Balmipour、申し訳ありません、私は今、この質問のループを外しています、詳細を思い出すことはできません。一般的に、新しい質問がある場合は、別途質問する方がよいでしょう。適切なタグ付けは、他の人に注意を促して解決するのに役立ちます。 – madhead
この質問は古すぎますが、githubのプロジェクトをcmdウィンドウのコマンドの下に、hereの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
サンプル入力、サンプル予想される出力、現在のコード、電流出力を含めるように自分の投稿を編集することを検討してください。がんばろう。 – shellter
Hello Shellter。入力は '.mwb'ファイルです。出力は '.sql' DDLファイルです。現在のコード:なし私は方向を求めています。 – balteo
こんにちは@balteo、あなたはこれまで仕事を得ることができましたか?私は現在、同じ問題に直面しています。 – Aistina