はじめに
既にDDLファイルはざっくりできてるから自動的にリバースしてくれるツールとかないかな~と思っていたら良いのがありました。
いくつか使用方法があるみたいですが、今回はDockerを使用したやり方を紹介します。
概要
- SchemaSpy とは
- 使い方
SchemaSpy とは
SchemaSpy はDBの接続情報さえ持っていればそこからテーブル定義やER図といった設計書を様々なフォーマットで出力してくれるツールです。(超便利)
使い方
まずはスパイ対象のDBを適当に起動します。(既にあればスキップしてください)
起動したら、SchemaSpy用の作業フォルダの中で以下を行います。
- 公式Dockerイメージの取得
下記のコマンドでSchemaSpyのイメージをプルしてきます。
docker pull schemaspy/schemaspy
プルしたら以下のコマンドを実行します。(パスや認証情報は各々で置き換えてください)
docker run -v "$PWD/schema:/output(出力先のパス)" --net="host" schemaspy/schemaspy:snapshot -t <DBの種類(mysql postgresqlなど)> -host <ホスト:ポート [例localhost:3306]> -db <スキーマ名> -u <ユーザ名> -p <パスワード> -connprops useSSL\\=false -s <スキーマ名>
今回はdocker-compose.ymlで設定したDBの情報をもとに以下のようにします。
docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:snapshot -t mysql -host localhost:3306 -db schema_spy -u schema_spy -p schema_spy -connprops useSSL\\=false -s schema_spy
※上記を実行した際に「java.io.IOException: Unable to create directory /output/tables」
というエラーが発生した場合、出力先ディレクトリの権限を変更する必要があります。
sudo mkdir -p schema
sudo chmod 777 schema
無事に実行が完了すると、schemaディレクトリ(厳密にはdocker run -v "$PWD/"
で指定したフォルダ)にファイル群が出力されると思います。
この中にHTMLやJSファイルもあるのでブラウザで確認すると、
こんな感じでテーブル定義情報を確認することができるようになります。
また、右上のボタンからExcel、CSV、PDF形式で出力することも可能です。
最後に
先に動作環境を作っちゃったけど設計書に書き出すのつら~って時におすすめです。