LoginSignup
20
15

More than 3 years have passed since last update.

SchemaSpy6.1.0でPostgreSQLからER図を出力する

Last updated at Posted at 2019-03-12

コマンド一発で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
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!

20
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
15