Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
A5:SQLのER図にCakePHP仕様のテーブルを追加するスクリプト
投稿者:sunvisor 投稿日時:2008/12/12(金) 12:53
書籍「CakePHP徹底入門」でもおすすめになっていますが,ER図やSQL文がかけるデータベースツールのA5:SQLと いうのがあります。これはすごい優れものでして,本当に便利に使っています。作者の松さんには毎日感謝しています。このA5:SQLは,Donkeyを 使ってスクリプトを書くことができます。そのスクリプトを使って,A5:SQLのER図にCakePHP仕様のテーブルを追加するスクリプトを書いてみました。
CakePHP仕様のテーブルとは,IDがオートインクリメントのINTで,createdとmodifiedというDATETIMEのフィールド があるテーブルです。リスト用のnameフィールドもつけた単純なテーブルのエンティティをER図に追加します。
対象バージョン:A5:SQL Mk-2 Version 2.4.0 beta 20
//CakePHPCakePHP仕様のテーブルを追加する var frmER = application.getActiveWindow(); if (frmER.formType != "A5EREditor") { alert("アクティブウィンドウをERエディタにしてから実行してください。(1)"); exit(); } var sources = new Strings; sources.add(""); sources.add("[Entity]"); sources.add("PName=cakes"); sources.add("LName=新しいCakePHPテーブル"); sources.add("Comment="); sources.add("TableOption="); sources.add("Left=250"); sources.add("Top=250"); sources.add('Field="ID","id","INT AUTO_INCREMENT","NOT NULL",0,"","",$FFFFFFFF'); sources.add('Field="名前","name","@VARCHAR(100)",,,"","",$FFFFFFFF'); sources.add('Field="作成日","created","@DATETIME",,,"","",$FFFFFFFF'); sources.add('Field="更新日","modified","@DATETIME",,,"","",$FFFFFFFF'); sources.add("EffectMode=None"); sources.add("Color=$000000"); sources.add("BkColor=$FFFFFF"); sources.add('Position="Main",300,300'); frmER.source.addStrings(sources);
A5:SQLのスクリプトエディタで上記のスクリプトを作成し,A5:SQLのscripts/Toolフォルダに保存します。
A5:SQLを再起動すると,ツールメニューに「CakePHP仕様のテーブルを追加する」が追加されます。
メニューを実行するとER図にエンティティが追加されます。
今度は,A5:SQLのER図からモデルのソースコードを出力するようなスクリプトが書けるといいかも。dbdesigner2cake.phpみたいな感じだし。と思っていますがいつかできるでしょうか。
変更履歴
2009/10/30 | A5:SQLの仕様が変更されたので一部スクリプトを修正しました。2.4.0 beta20に対応 |