データベースドキュメント生成コマンド tbls 更新情報 (テンプレート変更機能/ドキュメント内リンクのbaseUrl変更機能/テーブルリレーション自動検出機能)

無事マージされてさらに便利になったtblsの新機能紹介エントリです。ちなみに、自分が追加した機能は1つもありません。

tblsをさらに便利にしてくれるPull Requestに改めて感謝します。

ドキュメントのテンプレートを変更できるようになりました

https://github.com/k1LoW/tbls#personalized-templates

tblsが生成するドキュメントテンプレート( Goのtext/template ) を差し替えることができるようになりました。

tbls.ymlで、必要な設定だけ以下のように差し替えテンプレートのパスを書くだけです。

templates:
  dot:
    schema: 'templates/schema.dot.tmpl'
    table: 'templates/table.dot.tmpl'
  puml:
    schema: 'templates/schema.puml.tmpl'
    table: 'templates/table.puml.tmpl'
  md:
    index: 'templates/index.md.tmpl'
    table: 'templates/table.md.tmpl'

tbls doc で生成されるドキュメントフォーマットが気に食わない人には朗報ですね。

もう少しフォーマットをいじるためのテンプレート用関数も(デフォルトで使わなくても)追加していこうと思います。

生成するドキュメントのリンクにbaseUrlを設定できるようになりました

github.com

これは、MarkdownファイルをGitHub以外でホスティングしたいということで追加されました。

ただ、今後HTML生成機能が追加されたり、tbls Web UI(?)ができた時にも有効に使えるパラメータになると思っています。

テーブルのリレーションを自動で検出する機能がつきました

https://github.com/k1LoW/tbls/blob/master/sample/detect_relations/README.md

Ruby on Railsなどで採用されている命名規則に沿っていれば外部キー制約がなくても自動でテーブルのリレーションを検出してくれます。

いわゆる [users.id](http://users.id)posts.user_id を自動で関連づけるアレです。

外部キーレスで設計したデータベースも、これを有効にするだけでドキュメントがかなりわかりやすくなるのではないでしょうか?

現在はRoRライクな命名規則だけですが、他にもよく使われる命名規則があれば実装していきたいと思っています。是非教えてください!


というわけで、最近追加された新機能の紹介でした。