当社のすべてのIDEにServicesという新しいツールウィンドウが搭載されました。 DataGripではそこですべての接続を監視したり、管理したりできます。
各接続の対応するデータソースの下に独自のノードが表示されるようになりました。 ノードアイコンに小さな緑色のライトが点灯している場合、それは接続中であることを示しています。 コンテキストメニューを使って簡単に接続を閉じることができます。
すべてのサービスタイプをノードとして表示したり、タブ表示に変更したりできます。 ツールバーからShow in New Tab(新規タブで表示)アクションを使用するか、 単に必要なノードをServicesツールウィンドウにドラッグするだけです。
クエリの結果は、Servicesビューの各コンソールの接続の下に配置されています。
重要! Servicesツールウィンドウのデフォルトショートカットは Alt+8 です。
Servicesツリーを表示したくない場合(以前の表示に戻したい場合)は、歯車アイコンをクリックして非表示にしてください。
Services ツールでは、別途要望のあったクエリライブタイマー提供しています。 クエリを実行する任意の接続で、その右側に接続時間が表示されます。
Dockerプラグインを使用する場合、対応するサービスもこのツールウィンドウに表示されます。
データの正確な位置が分からなくても、データを検索できるようになりました。 そのためには、検索対象のデータソースやデータソースグループ、あるいは個々のテーブルを選択し、コンテキストメニューからFull-text Searchを全文検索を実行してください。 もちろん、対応するショートカット(Ctrl+Alt+Shift+F)もあります。
文字列入力用のダイアログが表示されます。 そこでは検索対象のデータソースがリスト表示され、いくつかの検索オプションを設定できます。
また、データ検索にあたってDataGripが実行する詳細なステートメントを確認することができます。
検索を実行すると結果が表示されます。結果は開くことができます。
結果をクリックするとデータエディタが開きます。 フィルタが事前に定義され、データが見つかった場所の文字列だけが表示されます。 カラムが多すぎてデータの位置を特定できない場合は、データエディタでCtrl+Fを使ってテキスト検索を使用してください。
一部のデータベースでは、インデックス化されたカラム内のみを検索できます。 このモードを使用するには、Search inドロップダウンメニューでOnly columns with full-text search indexes(全文検索インデックスのあるカラムのみ)を選択してください。
where col @@ plainto_tsquery('text')
となります。 where match(col) against ('text' in natural language mode)
となります。 WHERE CONTAINS(col, N'text')
を使ってクエリを生成します。 where col MATCH ‘text’
を使ってクエリを生成します。 All columnsモードが選択されている場合、この検索はJSON型のカラムなど、LIKE
演算子をサポートしていないカラムの中を調べます。 これらのカラム内の値は、あらかじめ文字列に変換されます。
In Apache Cassandra, DataGrip creates several queries for one table, because the OR
condition isn’t supported by the database.
結果セットのツールバーから、データベースから取得する行数を定義できるようになりました。
結果表示には他にも非常に素晴らしい改善が行われています。タブの名前を変更できるようになりました! クエリの前でコメントを使用するだけでタブの名前を変更できます。
ある特定のコメントをタブ名にしたい場合は、設定の Treat text as title after フィールドを使って接頭語を指定ください。 これにより、指定した接頭辞より後ろの文字列だけがタイトルとして使用されます。
これまでもドラッグアンドドロップでテーブルをコピーすることはできましたが、同じスキーマにコピーする際には使用できませんでした。 実際、この機能は重要なデータ操作を実行する前にテーブルの簡単なバックアップを作成したい場合に非常に役立つと思われます。 このため、この機能を使えるようにしました!
データベースエクスプローラーで、ドラッグアンドドロップでグループの作成も行えるようになりました。
新しいグループを作成するには、あるデータソースを別のデータソースにドラッグするだけです。
データソースを既存のグループに配置するには、そこにデータソースをドラッグアンドドロップしてください。
バージョン2019.2以降、データソースへの有効な接続がある場合に小さな緑色のライトが表示されるようになりました。
Force Refresh(強制再読み込み)という新しいアクションをデータソースまたはスキーマに対して使用できるようになりました。 このアクションはDataGripがキャッシュしているデータソースの情報を消去し、最初から読み込み直します。
GoToポップアップでオブジェクトを指定する際、似たようなオブジェクトがリストに多数表示されることがあります。 これは、本番環境、ステージング環境、テスト環境など多数のミラーが存在する場合に発生しがちです。
DataGrip 2019.2では、検索対象(特定のデータソース内、または複数のデータソース内)を選択できます。
Find In Pathでも同様の動作をします。これは、他のオブジェクトのDDL内のソースコードを検索する際に非常に便利です。
ほぼすべてのデータベースにシステムカタログはあります。そこには、リレーショナルデータベース管理システムが テーブル、カラム、ビルトイン関数などに関するスキーマメタデータを保管しています。
これらのカタログのオブジェクトは、コーディング支援を提供するのに必要です。 このようなオブジェクトをコード補完の対象に含めるのは良い事です。そうすれば、それらを使用しているコードが赤く強調されることはありません。
これまでは、システムカタログをコーディング支援の対象に含めるには、それらをデータベースエクスプローラーに追加するしかありませんでした。 DataGripは、これらのカタログに関する情報を(そう、常に同じ情報を)時間をかけてデータベースから実際に取得していました。 また、それらはデータベースエクスプローラーに表示されていましたが、常に必要なものではありません。
スキーマ選択ツールでは、この種のスキーマに雷アイコンが表示されます。 これらのスキーマにチェックを付けなかった場合、DataGripはそれらをイントロスペクションと表示の対象から外しますが、それらのオブジェクト情報はコーディング支援で使用されます。 この機能を実現するため、DataGripは各データベースのシステムカタログに関する内部データを使用しています。
以下にいくつかのデータベースのシステムカタログの例を挙げます。
まず、クイックフィックスをインスペクションツールチップに統合しました。 DataGripで問題を解決できる場合、警告にマウスオーバーするだけでその方法を確認できます。 問題を解決するには、ツールチップ左下のリンクをクリックするか、Alt+Shift+Enterを押すだけです。
これまでと同様、Alt+Enterで使用可能なすべてのクイックフィックスのリストを取得することもできます。
また、複数の新しいインスペクションを導入しました。
CASE
構文を使用している場合、DataGripはそれらをより可読性の高い構文に変換できるかどうかを解析します。
IF
に変換:
COALESCE
に変換:
もう1つインテンションアクションを追加しました。SELECT
句のすべてのカラムがGROUP BY
句の中にある場合、GROUP BY
をDISTINCT
に変換できるようになりました。
このIDEは値を変数に割り当てる際に文字列の長さを検出し、その文字列が切り捨てられる場合に警告を表示します。
Move Caret to Next Wordアクションのデフォルトの動作が変更されました。DataGripはキャレットを現在の単語の終了位置に移動します。
キャレット移動アクションの動作を変更するには、Preferences/Settings | Editor | Generalに移動してください。
通常、このアクションはCtrl+矢印キー(WindowsおよびLinux)およびOpt+矢印キー(Mac)を押して実行します。 オペレーティングシステムによってデフォルトの動作は異なります。 DataGripでは、Windows風の動作をMac風の動作に変更しました。
こちらが以前の動作です:
今回はこのように動作します:
新しいアクション、Select current statementを使用できるようになりました。 このアクションはFind Action(Ctrl+Shift+A)からアクセスできます。あるいは、専用のショートカットを割り当ててください。
大きな数字の可読性を可読性を向上させたい場合は、それらをCtrl+マイナスのショートカットで区切ることができます。