👻

DB設計の共有で疲弊してない?dbdocsのすゝめ

2023/05/27に公開

DB設計の管理や作成に疲弊してません?こんにちは。ukmshiです。今日はDB設計の共有と管理に便利なツール、dbdocsについてお話しします。dbdocsを使えば、設計の可視化や共有がめちゃくちゃ簡単になるんです。今回は、その魅力と利点、そして実際の使い方について詳しく説明します。

https://dbdocs.io/

dbdocsとは?

dbdocsは、コードベース(DBML)でDB設計を管理し、URLで共有することが可能なツールです。データベースのテーブル構造や関係性を可視化し、それを他のチームメンバーやステークホルダーと手軽に共有することができます。

実際の画面

DBMLについてはこちらを参考に

https://zenn.dev/ryo_kawamata/articles/introduce-ddbdiagram-io

dbdocsの利点

dbdocsの利点について詳しく見ていきましょう。

  • 無料
    まず最初に、dbdocsは基本無料です。コストを気にせずに利用できるので、チームの誰もがアクセス可能です。

  • コードベースで管理
    dbdocsはコードベースでDB設計を管理します。これにより、設計の変更履歴を追跡することが簡単になり、バージョン管理にも対応できます。

  • 共有が楽
    設計図を共有するためには、ただURLをコピー&ペーストするだけ。それだけで、他のチームメンバーや関係者と設計を簡単に共有することができます。
    また、PDFやPNGへの出力も可能です!

  • 閲覧制限
    パスワード設定により、設計図の閲覧を制限することも可能。セキュリティを確保しつつ、必要な人だけにアクセスを許可することができます。

  • 可視化されたテーブル間の関係
    dbdocsでは、テーブル間のリレーションシップがビジュアル化されます。これにより、一目でデータベースの構造を理解することができます。テーブルを絞って、関連するものだけを表示することも可能です。

  • Enumに対応
    Enumの設計もサポートしています。これにより、Enumの定義を分かりやすく示すことが可能です。外のツールでは、対応してなかったするので、これまじで便利。

  • コメントがDM対応
    テーブルやカラムのコメントがDM対応してます。何故この設計をしたのかを書いておいたり出来るので、後から思い出すのが楽だったり、DMのおかげで見やすくなるので最高です。

  • トークンが使える
    トークンが使えるので、CI/CDに載せて、ドキュメントの更新を自動化出来ます。

欠点は?

これ以上にいいもの、何があるんですか?
逆にいいものがあれば教えてください!

dbdocsの使い方

それでは、dbdocsのインストールと使い方について見ていきましょう。

  • dbdocsのインストール

まずはnpmを使ってdbdocsをインストールします。

$ npm install -g dbdocs
  • CLIでのアカウント作成 or ログイン

次にCLIを使用してdbdocsにログインします。メールアドレスでログインするとOTPコードが送られてきます。アカウントの新規作成も同じです。

$ dbdocs login
? Choose a login method: Email
? Your email: example@example.com
✔ Request email authentication
? Please input OTP code sent to the email:
  • ドキュメントの新規作成・更新

以下のコマンドを使用してドキュメントを新規作成・更新します。

$ dbdocs build [your/dbml/path]
✔ Parsing file content
⚠ Password is not set for 'sample'
✔ Done. Visit: https://dbdocs.io/example/sample

生成されたURLを見るとDB設計が見れます!

dbdocsのその他の使い方

  • ドキュメントへパスワードの設定

ログインした状態で以下のコマンドを実行すると、ドキュメントにパスワードを設定できます。

$ dbdocs password
? Project name: sample
? Enter password:  [hidden]
? Re-enter password:  [hidden]
✔ Password is set for 'sample'.
  • Tokenの取得

Tokenを発行すると、毎回ログインせずにdbdocsを更新することが可能になります。以下のコマンドでTokenを取得し、環境変数dbdocs_TOKENに設定します。

$ dbdocs token -g

Gemの紹介

最後に、RailsユーザへGemの紹介です。
ActiveRecord上から簡単にDBMLを出力するGemを作成したので、ぜひ使ってみてください!

https://rubygems.org/gems/active-dbml

Gemの紹介はこちら

https://zenn.dev/ukkyon/articles/e3da3a02606a61

SNS

Discussion