UUUMエンジニアブログ

UUUMのエンジニアによる技術ブログです

JetBrainsのDataGripを勧めてみる。

こんにちは。UUUMのシステムユニットの永井です。
Apex Legends シーズン13が始まりました。
今シーズンはマスター目指します。

はじめに

皆さんはデータベース管理ツールは何を使用していますか?
PHPならMySQL Workbench、PostgreSQLならpgAdmin 4、国産フリーソフトのA5:SQL Mk-2など 様々あると思いますが、私は普段JetBrainsのDataGripというツールを使用しています。
ですので、今回はDataGripの便利な機能を何点か共有できたらと思います。

ざっくりDataGripとは

JetBrainsが出しているデータベースIDEです。2017年生まれくらいです。
とにかく色々なデータベースを管理することができます。

なので、DataGripを使えれば正直どこ行っても新しいツールを覚える必要ないです。

フリーソフトではありませんが、無料30日間体験版もあります。
またざっくり一年間支払いすれば、その製品に対して永久fallbackライセンス(購入時点のバージョンならサブスクしてなくても使える)も得られます。

詳しくは以下を参照してください。

サブスクリプションベースのライセンスモデル対-永久ライセンスモデル

年額払いなら2年目は20%割引、3年目なら40%割引もしてくれます。

便利機能

コードフォーマット

例えばWebアプリケーションでデータの出力内容がおかしくて、
デバックやログに表示された複雑な条件のズラーっと長いSQLを確認する必要がある場合、
コードフォーマットを使えばいい感じに見やすく整えてくれるので捗ります。

公式のGifです。整形前がもっと複雑でもいい感じに整形してくれます。 https://www.jetbrains.com/datagrip/features/img/editor/FormatCode.gif

コード補完機能

JetBrains製のIDEを使った事がある人ならわかると思うんですが、コード補完が強力です。 DataGripでもがっつりコード補完してくれます。

特にありがたいなと思うのは、テーブルに設定されている外部キーを元にJoin句の補完候補を出してくれることです。

結合先のテーブルが多い時は候補も多くあげてきますが、
そんな時は、user_groupsというテーブルを結合させたい場合は、ugと入力すると候補絞ってくれます。

https://www.jetbrains.com/datagrip/features/img/completion/JOIN.png

他にも色々と補完してくれます。 www.jetbrains.com

差分確認機能

任意のスキーマやテーブルの差分を確認することもできます。

DataGripの古いバージョンだと差分ビューアー内で、差分を修正するためのDDLを表示してくれてはいましたが、そのまま実行はできませんでした。
しかし最近差分ビューアーが改良され、ビューアー内で確認→実行できるようになったみたいです。

https://resources.jetbrains.com/help/img/idea/2022.1/db_compareTableStructures.png

ただし開発環境とステージング/本番のテーブル比較して確認したいだけの時に、間違えてExecute押してしまうと惨事なので、
最低限本番環境の接続設定は読み取り専用にしておくといいです。

pleiades.io

ダイアグラム生成機能

全体又は任意のテーブルを選択してダイアグラムを確認できるのもいい点だと思います。
また、生成したダイアグラムは以下の形式でエクスポートできるようになったので、 サードパーティツールとの互換性が確保されたとのことです。

  • yEd の .graphml
  • JGraph の .drawio
  • Graphviz の .dot
  • Graphviz の位置情報付きの .dot
  • Mermaid の .md
  • Plantuml
  • IDEA の .uml

DataGrip上のダイアグラム

drawio形式でエクスポートした結果

ただし、ER図を書いて、それを元にDDLや定義書を作成してくれる機能はない(たぶん)ので
今後のアップデートで追加してくれないかなと思います。
因みにそういった事やりたい人はA5:SQL Mk-2 がオススメです。

どんな人にオススメ?

こんな人にオススメです。

  • JetBrains製のIDEを使った時ある人。→ 使用感同じです。
  • All Products Pack もってるけど使ってない人 → もったいないので使ってください。
  • 色々なDBに接続する必要がある人 → ツール切り替えしなくて済みます。cross-DBMSが使えるので、PostgreSQL データベースから SQL Server へすべてのテーブルを簡単にコピーとかもできるらしいです。
  • 多機能すぎて使いこなせない人 → データベースを管理する上で基本的な操作などをサポートしてくれるので十分利用価値あると思います。

さいごに

今回はDataGripを紹介させていただきました。
他にも便利機能あるので、ぜひ一度使ってみてください!

pleiades.io

また、UUUMではエンジニアを絶賛募集中です!
https://www.wantedly.com/projects/861137