http://www.ark-web.jp/sandbox/wiki/79.html先日、ARK-Webの勉強会で、斉藤さんがclayhttp://www.azzurri.jp/ja/software/clay/について発表してくれましたが、個人的には次のように思いました。ER図を画像として出力することが重要1マシンあたり3万円は高いCREATE文を書くのはGUIよりSQL文を手書きした方がなんとなく安心?ER図の画像を吐き出すだためだけにeclipseを立ち上げるのは面倒*1ですので、このようなツールで下記のような条件のものを探してみました。ER図をデータベースのリバースエンジニアリングをして描くことができるものオープンソースライセンスのもの機能がもっと少なくてもよいので軽いもの「db2dot」(http://sourceforge.net/cvs/?group_id=153228)を見つけました。このツールのインストール、使い方について、メモを残します。Keyの制約を利用して、データベースの構造を解析して、それのER図をdotファイル形式で吐き出すツールらしいです。dotファイルは、graphvizhttp://www.graphviz.orgというソフトを使ってpngファイル等様々な画像形式に変換できるらしいです。Keyが使えるRDBMSならなんでも対応できる、とのことです。†INNODBをサポートしているMySQLとJDK1.5*2がインストール済みである必要があります。graphvizを入れます。graphvizjavaのMySQLのJDBCドライバーを落としてきます。http://dev.mysql.com/downloads/connector/j/3.1.html解凍して移動します。mysql-connector-java-3.1.12最新のmysql-connector-javaは、antでbuildしようとすると失敗しました。下記パッチをbuild.xmlに充てる必要があるらしいです。http://lists.mysql.com/commits/305パッチを充てた後antを実行しました、。antこれで、「mysql-connector-java-3.1.12-bin.jar」ができました。db2dotをダウンロードします。いうファイルが抽出されます。†ER図を描くために、MySQL上にINNODBでテーブルを作ります。TYPE=INNODB;いよいよ実行です。pass=こんな実行結果が表示されます。parent;}このdotファイルを、dotコマンドにパイプしてみます。out.pngこんな感じの画像が生成されました。†INNODBではなく、MyISAMで同様のテーブルを作って画像を生成してみます。KeyやReferences句は記述することはできますが無視されるそうです。);こんな感じの画像が生成されました。†Graphvizでは、かなり見た目の整形が細かくできるみたいです。チュートリアルhttp://homepage3.nifty.com/kaku-chan/graphviz/chapter_010.htmldotコマンドのオプションでグラフ全体の、デフォルトの整形指定ができるようなので、例えば枠を四角で囲んで、矢印は、終点を3つ叉になるようにしてみます。-Earrowhead=crowこんな感じの画像が生成されました。3.7.7をリリースしました。