コマンド一発でSchemaSpyを使ってER図を出力する方法が記載されていますので、こちらの方が便利だと思います!
https://qiita.com/ap8322/items/b93dfb2ff29b026ffa72
(2020/5/25 更新)
はじめに
SchemaSpyでER図を出力することがあったので、出力方法を残しておきます。
またSchemaspy6.1.0(2019年3月12日時点で最新)からGraphvizのインストールが不要になり、-vizjs
オプションを付けるだけでER図の出力が可能になりました。
前提環境
- macOS Mojave 10.14.3
- Java 1.8.0_121
- PostgreSQL 11.2
SchemaSpy6.1.0をダウンロード
Githubの「Latest Build」から6.1.0をダウンロード
https://github.com/schemaspy/schemaspy
最新のschemaspyはここからしかダウンロードできません。安定版は6.0.0なのでしょうか?
PostgreSQLのJDBCドライバーをダウンロード
SchemaSpyからPostgreSQLに接続するにはPostgreSQL用のドライバが必要です。
2019年3月12日時点では postgresql-42.2.5.jar
が最新でした。
ドライバのダウンロードが可能なURL↓
https://jdbc.postgresql.org/
作業用ディレクトリの準備
以下のようにファイルを配置し、結果出力先のディレクトリを生成しておきましょう。
[任意のディレクトリ名]
├── postgresql-42.2.5.jar
├── result (schemaspyの結果出力先ディレクトリ)
└── schemaspy-6.1.0-SNAPSHOT.jar
schemaspy.propertiesの生成と編集
schemaspy実行時のデフォルトで読み込まれる設定ファイルを書きます。(schemaspy.properties
をデフォルトで読み込む仕様になっています。)
vi schemaspy.properties
# type of database. Run with -dbhelp for details
schemaspy.t=pgsql
# optional path to alternative jdbc drivers.
schemaspy.dp=./postgresql-42.2.5.jar
# database properties: host, port number, name user, password
schemaspy.host=任意のhost(ex: localhost)
schemaspy.port=任意のport(ex: 5432)
schemaspy.db=任意のdatabase名
schemaspy.u=任意のuser名
# output dir to save generated files
schemaspy.o=./result/
# db scheme for which generate diagrams
schemaspy.s=public
schemaspyの実行
java -jar schemaspy-6.1.0-SNAPSHOT.jar -vizjs
-vizjs をつけるのがポイントです。
あとは result/index.html
を開いたら結果が確認できます。簡単!
おわりに
いかがでしたでしょうか?
簡単にERが出力できるので、phpMyAdminなどツールが入れられない場合に重宝しますね!
Happy Coding!