概要
皆さまはアプリ開発やシステム開発でデータベースを使用する機会はありますでしょうか?
私自身は最近データベースをよく触っており、かつ SQL コマンドも使う機会が増えてきているので勉強しているところになります。
初めてデータベースを触ったり既存のシステムのデータベースを修正するなどの場合、簡易的でも簡単なシステム構成図やテーブル構成図などがあるとよいですよね。
ただデータベースの絵を描くとなるとエクセルを使用しなければならない場合などがあり、エクセルを好まない人にとってはどうやって作成しようかと悩む方も多いかと思います。
そんな中、データベースのテーブル一覧を簡単に描画でき、さらに SQL コマンドも作成できてしまうとても便利な OSS を見つけましたので、今回はこちらについてご紹介したいと思います。
今回ご紹介する OSS は、無料でシンプルで使いやすいデータベース設計ツール兼SQLジェネレータである「drawDB」になります。
こちらの「drawDB」を使用することで、動画のように簡単にデータベースのテーブル一覧を作成などが行えます!
それでは早速詳細についてみていきましょう!
目次
特徴
「drawDB」の特徴としては以下のような点が挙げられていました。
- エクスポート機能:データベース図を JSON または画像としてエクスポート可能
- インポート機能:JSON ファイルまたは画像をインポートして利用可能
- カスタマイズ可能なワークスペース:好みに合わせて UI をカスタマイズ可能
- キーボードショートカット:キーボードショートカットを使用して開発速度の向上が可能
- テンプレートを搭載:事前に作成されたテンプレートがすでにいくつか用意済み
- カスタムテンプレート機能:各自でカスタマイズしたテンプレートを保存可能
- 一般的なエディタ機能:元に戻す、コピーする、貼り付けるなどの操作が可能
- エラー検出機能:データベース図のエラーを検出し通知機能を搭載
- リレーショナルデータベース対応:MySQL、PostgreSQL、SQLite、MariaDB、SQL Server の 5 つのリレーショナルデータベースをサポート
- オブジェクトリレーショナル対応:オブジェクトリレーショナルデータベースにカスタムタイプを追加可能
- プレゼンモード搭載:大画面でデータベース図を表示可能
上記で上げた機能以外にもたくさんの機能がまだまだあります。
より詳細について把握したい方は公式ドキュメントをご覧ください。
利用手順
ローカル環境で動作させるには以下コマンドで利用可能です。
git clone https://github.com/drawdb-io/drawdb cd drawdb npm install npm run dev
ビルドを行う場合は以下コマンドで利用可能です。
git clone https://github.com/drawdb-io/drawdb cd drawdb npm install npm run build
また、Docker 上でビルドする場合は以下コマンドで利用可能です。
docker build -t drawdb . docker run -p 3000:80 drawdb
使用感
早速私のほうでもこちらの「drawDB」について触ってみました。
テーブルを追加するには「+ Add table」からで、それぞれのテーブルにフィールドを追加するには左メニューの「Add field」から、インデックスを追加するには左メニューの「Add index」から可能でした。
まだ使ってみて間もないですが、直感的に確かに使いやすく、かつサクサク動作するので操作性も快適でとても使いやすいです!
あとはダークモード対応であったり、エディタ上部には Undo/Redo ボタン、保存ボタン、ToDo タスク管理ボタンなどがあり、エディタとして十分すぎる機能と思いました。
また、テンプレート機能もあるので、一からテーブル図を描画しなくても一気にショートカットしてテーブル図を描画することもできます。
ちなみに、既存テンプレートとしては以下のようなテーブルがあるようです。
まとめ
今回は、無料でシンプルで使いやすいデータベース設計ツール兼SQLジェネレータである「drawDB」についてご紹介しました。
データベースの構成図やテーブル図を簡単にかつ直感的に利用できるので、テーブル図などをあまり書いたことがない人でも簡単にかつ素早く作成することができるでしょう。
私自身もデータベースの構成図を描画するときにどうやって描画するか、どのシステムで描画するか決めかねていたので、今回紹介した「drawDB」を利用してみようと思いました。
データベースを普段から利用している方にとっても初心者の方でも、とても便利な OSS かと思いますので、ぜひ一度こちらの「drawDB」を利用してみてはいかがでしょうか。