もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

tblsでmermaid出力ができるようになってた

はじめに

こんばんは。

k1low.hatenablog.com

個人的にすごいニュースでした!

github が mermaidを表示できるようになってたから、ぜひ tblsでもmermaid表示できるようにしてほしいなーと思ってたらなってました!!

本題

なんか適当にテーブル追加してみます。

create table users (
    id int unsigned NOT NULL AUTO_INCREMENT,
    email varchar(255) NOT NULL,
    password varchar(255) NOT NULL,
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`email`)
);


create table user_profiles (
    id int unsigned NOT NULL AUTO_INCREMENT,
    user_id int unsigned NOT NULL,
    name varchar(255) NOT NULL,
    gender int unsigned NOT NULL,
    age int unsigned NOT NULL,
    address text,
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`user_id`)
);

create table user_coins (
    id int unsigned NOT NULL AUTO_INCREMENT,
    user_id int unsigned NOT NULL,
    amount int unsigned NOT NULL,
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (`id`),
    UNIQUE KEY (`user_id`)
);

そして .tbls.yml を作ります。

docPath: docs

er:
  format: mermaid

lint:
  requireTableComment:
    enabled: true
  requireColumnComment:
    enabled: true
    exclude:
      - id
      - updated_at
      - created_at
      - deleted_at

comments:
  -
    table: users
    tableComment: ユーザーテーブル
    columnComments:
      email: メールアドレス
      password: パスワード
    labels:
      - ユーザー
  -
    table: user_profiles
    tableComment: ユーザープロフィールテーブル
    columnComments:
      user_id: ユーザーID
      name: 名前
      gender: 性別
      age: 年齢
      address: 住所
    labels:
      - ユーザー
  -
    table: user_coins
    tableComment: ユーザーコインテーブル
    columnComments:
      user_id: ユーザーID
      amount: 所持コイン数
    labels:
      - ユーザー

relations:
  -
    table: user_profiles
    columns:
      - user_id
    parentTable: users
    parentColumns:
      - id
  -
    table: user_coins
    columns:
      - user_id
    parentTable: users
    parentColumns:
      - id

実行してみます。

$ tbls doc mysql://user:pass@host/database_name 

いい感じにできてます!!

終わりに

いや~。神アプデ神アプデ。

現場からは以上です。