MySQL Workbenchを介したDoctrine YAMLの作成

最近、MySQL Workbenchプログラムを使い始めました。 私はこのアプリケーションに非常に満足していました;その中にデータベース構造を設計することは非常に便利であり、フォワードエンジニアリングデータベースサーバーに簡単にエクスポートできます。 また、リバースエンジニアリング(リバースエンジニアリング)を使用することもできます。つまり、データベースの既存の構造でER図を作成します。 さらに、アプリケーションはモデルと既存のデータベースの同期を取ります。これは開発中にも非常に便利です。



しかし、データベース構造に加えて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



All Articles