Edited at

tblsでデータベースドキュメントを生成する(2.テーブル情報補完編)

More than 1 year has passed since last update.



  1. ドキュメント生成編

  2. テーブル情報補完編

  3. CI連携編


tblsは外部キー制約を見てテーブル間のリレーションを判断します。

posts.png


上記のER図のテーブルを結ぶ線がリレーション


ただ、データベースによっては、ORMにリレーション設定を任せていて外部キー制約を設定していなかったり、その他様々な理由で外部キーを張ることができないことがあると思います。

tblsでは、テーブル間のリレーションをER図やテーブル情報に補完してドキュメントを生成できます。

さらにテーブルのコメント情報なども補完できます(VIEWテーブルのカラム部分にもコメントを付与できるので便利です)


--add オプション

tbls doc--add オプションでリレーションを定義したYAMLファイルを指定します。

$ tbls diff mysql://user:pass@hostname:3306/dbname --add path/to/additional_data.yml


リレーション

リレーション情報を補完する場合、YAMLでの指定は以下のようになります。

---

relations:
- # logsテーブルにおける FOREIGN KEY(user_id) REFERENCES users(id) と同様
table: logs
columns:
- user_id
parentTable: users
parentColumns:
- id
def: logs->users
- # logsテーブルにおける FOREIGN KEY(post_id) REFERENCES posts(id) と同様
table: logs
columns:
- post_id
parentTable: posts
parentColumns:
- id


コメント

コメント情報を補完する場合、YAMLでの指定は以下のようになります。

comments:

-
table: post_comments
comment: 各投稿についたコメントの詳細確認用VIEWテーブル
columnComments:
post_user: 投稿したユーザ名
comment_user: コメントしたユーザ名


サンプル

例えば、

の場合、こちらのデータベースドキュメントを生成できます。


このように、例えばキーレスエントリなデータベースでも、コメントが十分でないデータベースでも、「使える」データベースドキュメントが生成できます。

次はtblsをCIに組み込む方法を紹介します。