LoginSignup
19
18

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-06-19
  1. ドキュメント生成編
  2. テーブル情報補完編
  3. CI連携編

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

posts.png

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

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

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

さらにテーブルのコメント情報なども補完できます。

これは、

  • すでに大規模運用していて安易にALTERできないテーブルへのコメント追加
  • VIEWテーブルへのコメント追加
  • コメントサポートしていないデータベースへのコメント追加

などが可能になるため便利です。

リレーション

リレーション情報を補完する場合、 .tbls.yml に以下のように記述していきます

---
dsn: mysql://dbuser:dbpass@localhost:3306/dbname
docPath: doc/schema
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

コメント

コメント情報を補完する場合は、以下のよう記述していきます。

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

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

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

19
18
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
19
18