tblsを試験的に導入してみた
さくらインターネット株式会社 / 知念航太
メンバー / バックエンドエンジニア / 従業員規模: 501名〜1,000名
利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
データベーススキーマのドキュメントを生成する機能 | 10名以下 | 2023年12月 | B to B B to C |
利用機能 | データベーススキーマのドキュメントを生成する機能 |
---|---|
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2023年12月 |
事業形態 | B to B B to C |
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
開発に携わっていると、新機能の追加や不具合の修正等で調査のためにテーブル設計を把握したい時があります。しかし、ある程度歴史のあるサービスのため規模的にテーブルの全体像把握に時間がかかる、かつ補足になるようなドキュメントもありませんでした。また、ドキュメントを新たに作成・更新する場合でも更新にかかるメンテナンスコストから慎重になる必要がありました。
どのような状態を目指していたか
ER図などテーブル設計が把握できるドキュメントをなるべく負担のかからない形で用意できること。
選定理由
データベーススキーマからドキュメントを自動生成できるため、手動でドキュメントを書く場合と比べて更新にかかるメンテナンスコストが少ないこと。
導入の成果
改善したかった課題はどれくらい解決されたか
おおむね解決されました。
どのような成果が得られたか
導入したプロジェクトでデータベースの全体像を俯瞰して見たい場合、tblsで生成したドキュメントを利用することができるようになりました。また、データベーススキーマのドキュメントを自動生成できるため、ドキュメントの更新にそれほど負担がかからないという点も満たすことができました。
導入時の苦労・悩み
特にありません。
導入に向けた社内への説明
上長・チームへの説明
tblsをGitHub Actionsと連携してCIで実行できるようにしています。OSSのため導入にかかる費用はCIツール等連携するサービスの利用料やサーバ代のみになります。また、導入自体もさぼど時間がかからないかつ、手動でドキュメントを作成・更新する場合と比べてメンテナンスコストが低いです。そのため、特に稟議などを必要とせずすぐに導入できました。
活用方法
データベーススキーマのドキュメントを生成する時に使用。 GitHub Actionsを利用して、スキーマ更新時にtblsでドキュメントを生成・更新するようにしています。
よく使う機能
- データベーススキーマのドキュメントを生成する機能(markdownの表とsvg画像を出力)
- 生成したドキュメントを再生成(更新)する機能
- GitHub ActionsでのCI実行
ツールの良い点
- データベーススキーマをmarkdownや画像などさまざまな形式で出力できる。
- テーブルの説明等など不足している情報を追記したい場合、[ymlで補足説明を書くことができる]。(https://github.com/k1LoW/tbls?tab=readme-ov-file#comments)
- Goで開発されていてバイナリをそのまま置いて利用できる。そのためCIに組み込みやすい。また、GitHub Actionsですぐに利用する方法も用意されている。
- 対応しているデータベース が多い。
ツールの課題点
- 新しいツールのため公式以外の情報は少ない。
- ドキュメントを再生成(更新)する場合、強制的に上書きするか、一度削除してから生成し直す必要がある。
- テーブルのリレーションが張られていないなど、場合によっては上手くドキュメントや図が生成されない場合がある。
ツールを検討されている方へ
導入難易度が決して高くないので試しに是非使ってみてほしいです。
今後の展望
まだ一部で試験的に導入されている状態のため、他のプロジェクトでも可能なら導入を検討したいです。
さくらインターネット株式会社 / 知念航太
メンバー / バックエンドエンジニア / 従業員規模: 501名〜1,000名