しかし、データベース構造に加えてORM Doctrineを使用して製品を開発しているため、データにアクセスするためのモデルを作成する必要がありました。 判明したように、Doctrine YAMLをアプリケーションから直接作成するWorkbenchのアドオンがあります。 インターネットで少し検索すると、プラグインが正常に見つかりました。 開発者ページはこちらです。
このプラグインを使用すると、将来のモデルの回路を作成するのに非常に便利で高速です。
利用可能な安定版はこのページにあります 。 執筆時点では、現在のバージョンは2010年1月3日付の0.4.1でした。 最新の開発バージョンは0.4.2です。 使用することをお勧めします。 http://mysql-workbench-doctrine-plugin.googlecode.com/svn/trunk/DoctrineExport.grt.luaで入手可能
アーカイブを展開すると、ファイル「DoctrineExport.grt.lua」が見つかります。これは必要なプラグインです。 次に、MySQL Workbenchにインストールする必要があります。 これを行うには、アプリケーションを実行し、「スクリプト」メニュー-「プラグイン/モジュールのインストール」に進み、プラグインでファイルを指定します。 追加するプラグイン「luaファイル(* .lua)」のタイプを指定することを忘れないでください。 その後、プラグインが正常に追加されます。

Workbenchアプリケーションを再起動して、プラグインをアクティブにします。
次のステップでは、単純なERダイアグラムを作成します(データベースサーバーへの既存の接続がない場合は、「SQL開発」-「新しい接続」セクションで作成します)これを行うには、アプリケーションを起動した後、「データモデリング」セクションで、「作成新しいEERモデル。」
新しいウィンドウを開いた後、必要なテーブルを最初に作成してからERダイアグラムを作成するか、モデリングに直接進んで並行してテーブルを作成できます。 2番目の方法をすぐに使用します。 これを行うには、最上部の「ダイアグラムの追加」アイコンをクリックします。
設計ワークスペースが開きます。

テーブルを作成しましょう。テーブル間の通信を確立します。 ユーザー、グループ、コメントの表があります。 各ユーザーはグループの一部です(1対多の関係)。 ユーザーはコメントを残すことができます(1対多の関係)。 MyISAMを使用する場合、外部キーは使用できないことを忘れないでください。 デフォルトでは、MySQL WorkbenchはInnoDBで動作します。
設計後、[データベース]-[フォワードエンジニア]メニューを使用して、作成した構造をデータベースサーバーにエクスポートできます。
上部のメニューでDoctrine YAMLを作成するには、「プラグイン」-「カタログ」-「Doctrineエクスポート:生成されたスキーマをクリップボードにコピー」セクションを開きます。 モデル回路はクリップボードに移動します。 また、メニューのこのセクションでは、データをアップロードするファイルを指定できます。
その結果、このようなデータスキームが得られました(以下を参照)。 プラグインはテーブルを正しく処理し、複数の末尾なしでモデルを作成しました。 したがって、テーブルが「ユーザー」と呼ばれる場合、将来のモデルは「ユーザー」と呼ばれます。これは非常に便利です。 さらに、必要なモデルを作成したときに、プラグインは「カテゴリ」という名前も正しく処理し、「カテゴリ」と呼ばれるスキームを作成しました。 そして、ご覧のとおり、すべての接続が正しく配置されています。 必要なクラスでは、「foreignAlias」はすぐに登録されますが、Doctrine自体は登録されません。 彼女は各回路に個別に通信を書き込みます。
私に合わなかった唯一のことは、モデルの最初の文字が小文字であり、クラス名が大文字で始まるZend表記に取り組んでいることです。 しかし、この問題はバージョン0.4.2で解決され、さまざまな構成変数を使用できるようになりました。 現在、デフォルトでは、最初の文字は大文字になっています。
構成設定ファイルを接続するには、ファイル「doctrinePluginConfig.lua」を作成する必要があります。このファイルはディレクトリ「%PROGRAMFILES%/ MySQL / Workbench / modules」に配置する必要があります。 ファイルの内容は次のようになります
local _G = _G
-- do not touch the three points, they are intended
module(...);
-- declare config and add it
-- to the global namespace
_G.extConfig = {
enableRecapitalizeTableNames = "none" –-
}
構成オプションの詳細については、このページのこちらをご覧ください。
Wikiの公式サイトでは、Doctrineを使用する際のプラグインの追加機能について説明しています。 たとえば、Doctrine Email Validatorを追加するには、列名にコメントを追加する必要があります
{doctrine:validators}
email: true
{/doctrine:validators}
使用したリソース
ユーザーモデルのYAMLの例。
---
detect_relations: true
options:
collate: utf8_bin
charset: utf8
type: InnoDB
User:
tableName: users
columns:
id:
type: integer(4)
primary: true
unsigned: true
notnull: true
autoincrement: true
name:
type: string(45)
login:
type: string(45)
email: true
password:
type: string(45)
group_id:
type: integer(4)
unsigned: true
relations:
group:
class: Group
local: group_id
foreign: id
foreignAlias: users
onDelete: cascade
foreignType: many
owningSide: true
indexes:
fk_users_groups:
fields: [group_id]
UPD: getInfoFromTableComment関数でエラーを受け取った人は誰でも
ファイル「%APPDATA%\ MySQL \ Workbench \ modules \ DoctrineExport.grt.lua」のgetCommentToken。 おかげでworker4food