エンジニア向け
データベースのテーブル定義を自動でドキュメント化する
shimizu
システム開発において、データベースのテーブルがどのような構造になっていて、テーブル間でどのような関係を持っているのかを可視化して共有することはチーム作業の効率を大いに高めてくれます。
データベースのテーブル定義に関する情報のドキュメント化は、手作業で行うこともできますが、作業の中で仕様変更が発生する度に内容を改訂する必要があり、変更管理の手間がかかります。そこで、テーブル定義の文書化を簡単に行えるツールを2点ご紹介します。
(これ以降では、macOSでの操作手順をベースに説明します)
tbls
GitHub – k1LoW/tbls: tbls is a CI-Friendly tool for document a database, written in Go.
tblsは、複数のデータベースシステムに対応し、Markdownを始めとして様々な形式で出力することができます。
特徴的な機能として、ドキュメント化されている定義と現在のデータベースの定義の間でdiffを取ったり、テーブル定義に対してLintを行うといったことも可能です。
インストール
$ brew install k1LoW/tap/tbls
使い方
テーブルすべての情報をMarkdown形式で出力する
$ tbls doc mysql://dbuser:dbpass@hostname:3306/dbname
テーブルすべての情報をPlantUML形式で出力する
$ tbls doc mysql://dbuser:dbpass@hostname:3306/dbname -t plantuml -o schema.plantuml
Rails ERD
GitHub – voormedia/rails-erd: Generate Entity-Relationship Diagrams for Rails applications
Railsアプリケーションで使用できるER図生成ツールで、Active Recordモデルの関連を元にドキュメント化します。マイグレーションを行う度に自動的にドキュメントを更新する機能もあります。
インストール
graphvizをインストールする
$ brew install graphviz
Gemfileに以下を追加する
gem 'rails-erd', group: :development
Gemのインストールを行う
bundle install
使い方
ER図をPDF形式で出力する
$ bundle exec erd
まとめ
今回はデータベースのテーブル構造を自動でドキュメント化するツールをご紹介しました。プロジェクトを進行させる中でドキュメントと実装との整合性を効率的に保っていくためのご参考になれば幸いです。