DataGrip便利だよ
新しい会社で初めて使ったけど、DB 接続のクライアントDataGrip便利だよ、という話。
いいところ
さまざまな DB に対応している
MySQL だったら MySQL WorkBench, SQLServer だったら SQL Server Management Studio など、それぞれ DB ごとの専用クライアントがありますが、DataGrip はさまざまな種類の DB に対応してる
DataGrip だと一つで MySQL, PostgreSQL にそれぞれに接続して操作できるので、楽ちんぽん。さらに同じインターフェースなので、同じショートカットや操作方法で様々な DB を操作できるのもグッド
もちろん SSH トンネリングもできるので、踏み台経由などのよくあるケースも問題なく接続可能ですね。
JetBrains 流(?)の補完、スニペット、フォーマッタ
たくさんの IDE を作っている JetBrains 製なので、コード補完もいい感じですしスニペットもたくさんありますね。過去に同じ JetBrains 製の ReSharper を使い込んでいたのもあり、なじむ
フォーマッタだったりもある程度細かく指定できたり、エクスポートして共有したりもできるので、クエリ規約的に配布するのも良さそうです。
個人的には SQL キーワードを大文字で書くのがめんどくさいので、小文字でざーっと書いてフォーマッタで一気に変換ってやったりするかも。ただそもそも補完ががっつり効いてくれるので、設定ちゃんとしとくといつの間にかちゃんとキーワード大文字になるけど。
他のよくある機能
GUI 上でポチポチするだけで DDL 発行できたり、Select 結果を後からポチポチ並べ替えたりするなど、よくあるクライアントにある機能はもちろんあるので安心してください。
あとは細かいところですが、適当に書き捨てた感じのクエリも意図的に消さない限りファイルとして残るので、前に書いたなーみたいなのは結構遡れたりして便利。
GUI 上でテーブルインポート・エクスポート
おまけ的機能にはなりますが、dump => import みたいなことをしなくても、Select 結果をそのまま別 DB へエクスポートインポートすることができます。
同一クライアントから複数ホストの DB に接続しておけば、ホストをまたいで移せます。1 行ずつの insert で移しているようで、レコードが多いと時間がかかりがちですが、小さいテーブルならそのまま環境をまたいでデータを移すことがサクッとできて便利。
いやなところ
GUI 絡みの問題
複数 DB 対応のためか、GUI からの DDL の発行がおかしいときがあります。
例えば Redshift に対して複数 PrimaryKey を GUI から貼ろうとしてもうまくいかなかったり。
そういうときはしょうがないので手で DDL をいじれば OK。
あとは RedShift 限定の UNLOAD コマンドとかは波線出たりするかも。
お金
が、無料トライアルは 30 日あります。
また他の JetBrains ツールを購入していると付属してることもあります。
まとめ
便利なので使っていきます。
というのを会社技術ブログに書きました