データベースドキュメント管理システム dmemoを実際に触ってみた。

eyecatch

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

好物はインフラとフロントエンドのかじわらゆたかです。
前回は、dmemoを立ち上げるまで行いましたが、今回は立ち上げたdmemoを使ってみたいと思います。
なお、今回の環境は前回立ち上げた環境を使っています。

管理者権限昇格

dmemoでは管理者ユーザーを登録するといった仕組みではなく、
登録済みのユーザーを管理者に昇格させるといった考え方になっております。
そのため、一度dmemoに対してログインをする必要があります。
初回の管理者ユーザー登録はログイン後コマンドでの管理者ユーザーへの昇格が必要になります。
今回は既に前回の立ち上げ時にログイン済みのため、ログイン済みのユーザーを昇格させたいと思います。
既に1人以上管理者権限に昇格したユーザーがいれば、そのユーザーの操作で一般ユーザーから管理者ユーザーへの昇格が可能です。

docker exec dmemo_web_1 ./bin/rake admin:activate EMAIL=(昇格対象のEmailアドレス)

管理者権限になると、SettingからDBの追加が行えるようになります。

管理者権限

dmemo_01

非管理者権限

dmemo_02

DB情報登録

管理者権限でログインすると、上記の通りDBの追加ができるので、DBの追加を行います。
dmemoが使うDBを追加してみたいと思います。

  1. 管理者権限でログインし、ADD Data Sourceを押下します。
  2. 以下のように入力することで、dmemoのDBの情報を参照できるように設定をし、Create Data Source を押下します。
    dmemo_03
  3. 作成するとSettingのData Sourcesの中に追加されます。 管理者ユーザーの場合、DBの情報の取得もここから行えます。

DB情報取得(WEB画面上から)

DB情報登録のところで書いた通り、Sttingの中の更新ボタンを押下することでDB情報の取得が行えます。
ですが、取得が完了した旨が通知されるわけではないので、
推奨されている通りバッチでの同期処理を行うほうが確実かと思われます。
なお、上記の操作が行えるのは管理者権限のユーザーのみとなります。

DB情報取得(バッチ処理)

DB情報登録まで行なった環境にて、以下のコマンドを実行することで取得が可能です。
登録されている全部のDBの情報を取得します。

docker exec dmemo_web_1 ./bin/rails r 'SynchronizeDataSources.run'

DB情報参照

上記のコマンドで取得したDB情報はDatabaseのメニューから参照したいDatasource名を選択し、表示することが可能です。
DB・カラム・Descriptionの項目はdmemoの説明ページにも記載されている通り、markdownで記載していくことが可能です。
dmemo_05 また変更の履歴を追うことも可能です。
dmemo_06 なお、説明の記載については非管理者ユーザーでも記載可能です。

辞書機能

dmemoの解説ページには以下のように記載されています。

データベースの説明にはドメイン固有の言葉がたくさん出てきます。 例えばクックパッドで文脈無しで「ユーザID」と言えば「main データベースの users テーブルの id カラム」のことです。このような説明を記述しておくため辞書機能を実装しました。 説明文の中に記述したテーブル名と辞書項目については自動的にリンクされるため、説明文における重複した記述を避けることができます。

実際に業務で使うDWHやDBには業務固有のものや、その固有の名称等が多々あることになります。
それらを管理する機能になります。以下のように単語を登録することが可能です。
dmemo_07

上記の用に設定すると先ほど書いたDB情報の項目に自動的にリンクが貼られることになります。
dmemo_08 リンクを選択すると、以下のような解説ページに遷移することになります。
dmemo_09

まとめ

単純にアプリケーションを開発していて実際のテーブル定義と定義書が古くなるといった事はよくあることで、
そういった課題を解決する一つの方法として、 dmemoを用いることで解決ができるのではないだろうか、
そんなことを思いました。