データベース仕様書作成アプリケーション royle

Digeonで使っているデータベースの仕様書を自動で作成するアプリケーションを紹介します。

著者

山﨑 祐太

CEO

2024-12-12

2024-12-12

山﨑 祐太

データベース仕様書作成アプリケーション royle

#mysql

#document


royleについて

royleは、データベースに接続してデータベース内にあるテーブル情報を取得、整形し、マークダウン形式で出力するコマンドラインアプリケーションです。

royleの使い所

ドキュメントの陳腐化を防ぐ

royleは時間のない開発者の味方です。royleはドキュメント作成を自動化でき、開発者がドキュメントを書く時間を節約できます。これにより、開発者やチームはドキュメントの保守に追われず、開発に時間を割くことができます。さらにCI/CDに組み込むことでドキュメントを最新の状態に保つことができます。

正確性の確保

開発者はmysqlサーバーを立ち上げ、ドキュメントとにらめっこする必要がなくなります。royleはドキュメントを生成するときに、mysqlのテーブル情報を毎回取得し正確な情報を提供します。さらに人の手が介在しないので書き間違いも起こりません。

お客様との情報共有

生成結果はpandocで処理できるため、マークダウン形式だけでなく、PDF形式やdocx形式に変換可能です。社内ドキュメントだけでなく、お客様への提出用のドキュメントの作成にも利用できます。

royleの使い方

royleはmysqlサーバーへの接続情報とデータベース名をコマンドに引数として渡すことで、指定したデータベース名のテーブル情報についてのドキュメントを作ることができます。

$ royle --host mysqlサーバーのホスト名 --port mysqlサーバーのポート番号 --database テーブル情報が欲しいmysqlサーバーのデータベース名 --user mysqlサーバーにログインするユーザー名 --password ユーザーのパスワード > out.md
$ cat out.md
# MySQL documentation
## orders
Stores basic information about orders
| Name | Type | Nullable | Constraints | Referenced | Default | Extra | Comment |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| id | int | NO | PRIMARY KEY | | | auto_increment | |
| product_name | varchar(255) | NO | | | | | |
| user_id | int | YES | FOREIGN KEY | [users](#users) | | | |
| quantity | int | YES | | | 1 | | Quantity of the product being ordered, defaults to 1 |
## user_details
Stores basic information about users details
| Name | Type | Nullable | Constraints | Referenced | Default | Extra | Comment |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| user_detail_id | varchar(30) | NO | PRIMARY KEY | | | | |
| user_id | int | YES | FOREIGN KEY | [users](#users) | | | |
| name | varchar(255) | NO | | | | | |
| created_at | datetime(3) | YES | | | | | |
| updated_at | datetime(3) | YES | | | | | |
## users
Stores basic information about users
| Name | Type | Nullable | Constraints | Referenced | Default | Extra | Comment |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| id | int | NO | PRIMARY KEY | | | auto_increment | |
| name | varchar(255) | NO | | | | | |
| email | varchar(255) | NO | UNIQUE | | | | |

内部の技術的な話

アーキテクチャ

このアプリケーションはパイプラインアーキテクチャを採用しています。パイプラインアーキテクチャーを採用した理由は、パイプラインアーキテクチャーを採用しているターミナルが、複数のコマンドをつなぎ合わせることで様々な表現ができるからです。royleもコマンドのように、様々なSQLやデータ成形関数、データ出力フォーマット関数を単一方向に組み合わせたアプリケーションです。将来的にはテーブル情報だけでなく、データベース内の多種多様なデータをドキュメント化できるように拡張しやすくなっています。

さいごに

このアプリケーションはOSSです。githubにソースコードを公開しています。コントリビューションをしてもらえるとうれしいです。

Share


xのアイコンfacebookのアイコンこのエントリーをはてなブックマークに追加

Author


著者

山﨑 祐太

CEO

神⼾⼤学と神⼾⼤学⼤学院にて深層学習に関する研究を⾏い、⼤阪のAI ベンチャーで機械学習エンジニアとして従事。株式会社Digeonを創業。


共に働く仲間を募集しています

Digeonは意欲のある方を積極的に採用しています。
神戸発のAIベンチャーでAIの社会実装を一緒に進めませんか?

採用ページはこちら
logo
Engineering Portal
ディジョンのエンジニア情報ポータルサイト
©株式会社Digeon All Rights Reserved.