ER図やスキーマ定義のドキュメントを生成する。
システム作っていて結構面倒なのがER図の生成、更新。ベストプラクティスを探し日々彷徨うのである…(徒労感
SchemaSpy
DBに接続してER情報を生成するツール。html出力出来るのでCIタイミングなどで生成→公開するのがよい。(公開範囲は気をつけてね)
SchemaSpyのインストール方法(local)
- Java8とGraphVizをインストールします。Macならbrew installでOK。
- 上記githubのreleasesからjarファイルをダウンロードする。
- mysqlに接続するのでJDBCドライバも用意する。多分MySQLのページの何処かにある。
- schemaspy.properties の用意。下記はローカル接続用のサンプル。適宜修正する。 schemaspy.o が出力先ディレクトリ。 schemaspy.gv がGraphVizのインストールディレクトリの親。{schemaspy.gv}/bin/dot を参照するっぽい。
schemaspy.t=mysql schemaspy.dp=/path/to/driver.jar schemaspy.host=localhost schemaspy.port=3306 schemaspy.db=dbname schemaspy.s=schemaname schemaspy.u=db_user schemaspy.p=db_password schemaspy.o=/path/to/output/ schemaspy.gv=/path/to/graphviz/ schemaspy.renderer=:quartz
ShcemaSpy 実行方法
バージョン等は適宜読み替えて。
java -jar schemaspy-6.0.0-rc1.jar -configFile schemaspy.properties
プロパティで指定されたDBに接続して指定された出力先に出力する。
SchemaSpyのインストール方法?(docker使う)
DockerでサクッとDBからER図を作成する - Qiita
このあたり参考にする。(未実施)
ERAlchemy
ERAlchemyのインストール方法(local)
mysqlを使う場合、インストール方法がpythonのバージョンによって異なる。 また、homebrewでインストール可能だがpyenvと組み合わせているとmysqlのライブラリ?の参照が微妙。 pipインストールを推奨したい。
- python2系の場合
- pip install MySQL-python
- pip install ERAlchemy
- python3系の場合
- pip install mysqlclient
- pip install ERAlchemy
※ pip インストール済であること。setuptoolsもあったほうが良い気がする。
使い方
eralchemy -i "mysql://nutte_dev:nutte@localhost/nutte" -o nutte.pdf
ERAlchemyのインストール方法?(docker使う)
DockerでERAlchemyを使ってPostgreSQLのER図を書き出す - 仕事中の問題と解決メモ。
このあたり参考に。(未実施)
一応docker hubにもある。(未実施)