Eyes, JAPAN Blog > データベースのテーブル定義を自動でドキュメント化する

データベースのテーブル定義を自動でドキュメント化する

shimizu

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。


システム開発において、データベースのテーブルがどのような構造になっていて、テーブル間でどのような関係を持っているのかを可視化して共有することはチーム作業の効率を大いに高めてくれます。
データベースのテーブル定義に関する情報のドキュメント化は、手作業で行うこともできますが、作業の中で仕様変更が発生する度に内容を改訂する必要があり、変更管理の手間がかかります。そこで、テーブル定義の文書化を簡単に行えるツールを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

出力例

まとめ

今回はデータベースのテーブル構造を自動でドキュメント化するツールをご紹介しました。プロジェクトを進行させる中でドキュメントと実装との整合性を効率的に保っていくためのご参考になれば幸いです。

Comments are closed.