14
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

本記事は、OSSのノーコード・ローコード開発ツール「プリザンター」 Advent Calendar 2022 の15日目の記事です。

概要

データベース情報からスキーマ定義やER図を出力してくれる SchemaSpy を使ってプリザンターのER図を作成します。最終的にプリザンターから以下のようなER図を作成することを目指します。

SchemaSpyの出力イメージ(ER図)
https://implem.github.io/PleasanterERD/schemaspy/relationships.html

本記事は全3回に分けて連載予定の第2回となります。今回はSchemaSpyを実行するための準備について記載します。

試した環境

プリザンター 1.3.26.1(2022/12/15時点の最新版)
OS: Windows10
DB: SQL Server 2019 Express Edition (64-bit)

はじめに

今回はプリザンター自体のデータベース定義情報をSchemaSpyで出力してみます。

事前準備

以下のマニュアルを参考にプリザンターをインストールします。今回の記事ではプリザンターをWindows 10(データベースはSQL Server)にインストールする前提で進めます。

導入手順

1. Graphvizのインストール

Graphvizをインストールします。

SchemaSpyの公式マニュアルを見ると、「バージョン 6.1.0 以降、Graphviz は不要になりました。コマンドライン引数 vizjs を追加することで使用できる組み込みの viz.js があります。」との記載がありますが、vizjsオプションはJava15以降では動きません。1

vizjsオプションを指定するよりGraphvizをインストールして使った方がSchemaSpyの処理速度が早いので、繰り返し利用する場合はGraphvizをインストールすることをおすすめします。

「Download」をクリックしてインストーラをダウンロードします。
image.png

「graphviz-7.0.4 (64-bit) EXE installer」をクリックします。
image.png

「次へ」をクリックします。
image.png

「同意する」をクリックします。
image.png

「次へ」をクリックします。
image.png

環境変数にパスを追加する場合は「Add Graphviz to the system PATH for all users」または「Add Graphviz to the system PATH for current user」を選択します。

「次へ」をクリックします。
image.png

「次へ」をクリックします。
image.png

「インストール」をクリックします。
image.png

「完了」をクリックします。
image.png

2. Adoptium(旧:AdoptOpenJDK)のインストール

Adoptium(旧:AdoptOpenJDK)をインストールします。

AdoptOpenJDKはEclipse Adoptiumになりました。2

Graphvizをインストールせずにvizjsオプションを指定してSchemaSpyを利用する場合はVersion8または11をインストールしてください。

「Latest LTS Release jdk-17.0.5+8」をクリックしてインストーラをダウンロードします。
image.png

ダウンロードした「OpenJDK17U-jdk_x64_windows_hotspot_17.0.5_8.msi」を実行します。

「次へ」をクリックします。
image.png

「次へ」をクリックします。
image.png

「インストール」をクリックします。
image.png

「完了」をクリックします。
image.png

3. Microsoft SQL Server 用 JDBC Driver のダウンロード

Microsoft SQL Server 用 JDBC Driver をダウンロードします。

「Microsoft JDBC Driver 11.2 for SQL Server (zip) のダウンロード」をクリックしてjarファイルをダウンロードします。
image.png

「mssql-jdbc-11.2.1.jre17.jar」がダウンロードされたことを確認します。

4. SchemaSpyのjarファイルのダウンロード

SchemaSpyのjarファイルをダウンロードします。

SchemaSpyの公式ページからダウンロードできる「schemaspy-6.1.0.jar」だと実行エラーになるので、GitHubのLatest Buildを利用します。3

画面を下にスクロールします。
image.png

Latest Buildの「schemaspy@latest」をクリックしてjarファイルをダウンロードします。
image.png

「schemaspy-6.1.1-SNAPSHOT.jar」がダウンロードされたことを確認します。

実行手順

場所はどこでもよいのですが、今回はC:ドライブ直下にSchemaSpyフォルダを作成して実行用ファイルを配置します。

C:\SchemaSpy
  |-- mssql-jdbc-11.2.1.jre17.jar
  |-- schemaspy-6.1.1-SNAPSHOT.jar

おつかれさまでした。ここまできたら、以下のコマンドでSchemaSpyを実行してみましょう!

実行コマンド
cd C:\SchemaSpy
java -jar schemaspy-6.1.1-SNAPSHOT.jar -t mssql17 -dp mssql-jdbc-11.2.1.jre17.jar -host 127.0.0.1 -port 1433 -db Implem.Pleasanter -u sa -s dbo -p saのパスワード -o C:/SchemaSpy/output -connprops encrypt\=false -imageformat svg
実行結果
Microsoft Windows [Version 10.0.19042.631]
(c) 2020 Microsoft Corporation. All rights reserved.

C:\Users\noro>cd C:\SchemaSpy

C:\SchemaSpy>java -jar schemaspy-6.1.1-SNAPSHOT.jar -t mssql17 -dp mssql-jdbc-11.2.1.jre17.jar -host 127.0.0.1 -port 1433 -db Implem.Pleasanter -u sa -s dbo -p saのパスワード -o C:/SchemaSpy/output -connprops encrypt\=false -imageformat svg
  ____       _                          ____
 / ___|  ___| |__   ___ _ __ ___   __ _/ ___| _ __  _   _
 \___ \ / __| '_ \ / _ \ '_ ` _ \ / _` \___ \| '_ \| | | |
  ___) | (__| | | |  __/ | | | | | (_| |___) | |_) | |_| |
 |____/ \___|_| |_|\___|_| |_| |_|\__,_|____/| .__/ \__, |
                                             |_|    |___/

                                              6.1.1-SNAPSHOT

SchemaSpy generates an HTML representation of a database schema's relationships.
SchemaSpy comes with ABSOLUTELY NO WARRANTY.
SchemaSpy is free software and can be redistributed under the conditions of LGPL version 3 or later.
http://www.gnu.org/licenses/

INFO  - Starting Main v6.1.1-SNAPSHOT on DESKTOP-3FUMCFT with PID 3192 (C:\SchemaSpy\schemaspy-6.1.1-SNAPSHOT.jar started by noro in C:\SchemaSpy)
INFO  - The following profiles are active: default
INFO  - Started Main in 3.794 seconds (JVM running for 4.932)
INFO  - Starting schema analysis
INFO  - Connected to Microsoft SQL Server - 15.00.2095
INFO  - Gathering schema details
Gathering schema details.................................................................................(2sec)
Connecting relationships.................................................................................(0sec)
Writing/graphing summary.INFO  - Gathered schema details in 0 seconds
INFO  - Writing/graphing summary
INFO  - Graphviz renderer set to ':cairo'
...ERROR - dot -Tsvg orphans.dot -oorphans.svg: Warning: cell size too small for content
ERROR - dot -Tsvg orphans.dot -oorphans.svg: in label of node Binaries
~中略~
....(5sec)
Writing/diagramming detailsINFO  - Completed summary in 5 seconds
INFO  - Writing/diagramming details
..ERROR - dot -Tsvg Groups.1degree.dot -oGroups.1degree.svg: Warning: cell size too small for content
ERROR - dot -Tsvg Groups.1degree.dot -oGroups.1degree.svg: in label of node Groups
~中略~
....(11sec)
Wrote relationship details of 78 tables/views to directory 'C:\SchemaSpy\output' in 22 seconds.
View the results by opening C:\SchemaSpy\output\index.html
INFO  - Wrote table details in 11 seconds
INFO  - Wrote relationship details of 78 tables/views to directory 'C:\SchemaSpy\output' in 22 seconds.
INFO  - View the results by opening C:\SchemaSpy\output\index.html

C:\SchemaSpy>

C:\SchemaSpyに「output」フォルダができるので、その中の「index.html」をブラウザで開いてみると、プリザンター自体のDBドキュメントが作成されています!

image.png

個別のテーブルについても見てみましょう。Issuesテーブルを見てみると、プリザンターの期限付きテーブルの分類項目に相当する「ClassA」「ClassB」「ClassC」などが図に出力されていることが分かりますね。

image.png

おわりに

プリザンター以外でもSQL Serverを使っているシステムであれば上記を参考にSchemaSpyでDBドキュメントを作成できると思います。第3回の記事ではプリザンターの画面上のテーブル単位でER図を作成する手順を公開予定です。

参考リンク

- Graphviz
- Adoptium
- Microsoft SQL Server 用 JDBC Driver のダウンロード
- SchemaSpy GitHub

  1. こちらの記事に詳しく記載されています。

  2. こちらの記事に詳しく記載されています。

  3. こちらの記事に詳しく記載されています。

14
0
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
14
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?