DataGrip 2020.3 の新機能

MongoDB での SQL 対応

MongoDB データベースに対して SQL でクエリを実行できるようになりました。 私たちはこの目的で JS-SQL 変換メカニズムを独自に作成しました。

SELECT クエリのみを使用可能で、JOIN / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT / OFFSET の各句に対応しています。 サポート対象に関する詳細な記事は、こちらにあります。

Mongo の各 SQL クエリのコンテキストメニューには、Copy JS script to clipboard(JS スクリプトをクリップボードにコピー)と Show JS Script(JS スクリプトを表示)の 2 つのオプションがあります。 JS Script Preview(JS スクリプトプレビュー)ウィンドウでは、クエリを編集して実行できます。

接続

Couchbase のサポート

Couchbase のサポート

私たちは継続的に新しいデータベースへの対応を行っていますが、今回は新たに Couchbase をサポートしました。 DataGrip がサポートしているのは Couchbase Query サービスであり、Couchbase Analytics サービスではないということにご注意ください。

Azure AD 認証

Azure AD 認証

これは、DataGrip コミュニティから長らく要望があった機能です。 Azure AD を使用してデータベースにログインできるようになりました。

作業ディレクトリ

作業ディレクトリ

データソースの操作を処理するプロセス用の作業ディレクトリを指定できるようになりました。 また、ドライバーのプロパティなど、このディレクトリ内のすべての相対パスが解決されます。

データエディター

セルの値を独立したエディターで操作

2020.2 で初導入したセル値のエディターを改良しました。

フォーマットされた値

フォーマットされた値

値が 1 行で格納されている場合でも、フォーマットされた値を表示できるようになりました。 さらに、フォーマットされたビューで値を編集し、それを元のフォーマットで更新できます。 この機能は単一行の XML と JSON で使用できます。

下への配置

下への配置

画面幅がフローにとって重要な場合は、セル値エディターを邪魔にならないようにデータエディターの下に移動できます。

画像

画像

このパネルで画像も表示できるようになりました。

転置したテーブルを開く

転置したテーブルを開く

テーブルとビューをデフォルトで転置表示で開く機能を追加しました。 これは、データベース内の標準的なテーブルに大量の列が含まれている場合に役立ちます。

選択範囲の縮小

選択範囲の縮小

これまで長らくテーブルで選択範囲を拡張するアクションを使用することが可能となっています。 このアクションは Windows と Linux では Ctrl+W で、macOS では Opt+Up で呼び出すことができます。 今回はこのアクションの対をなす、選択範囲の縮小を追加しました。 ショートカットは Windows と Linux では Ctrl+Shift+W、macOS では Opt+Down です。

インポート/エクスポート

新しいエクストラクター

新しいエクストラクター

2 つの新しいエクストラクター、One-rowSQL-Insert-Multirow をご紹介します。

One-Row は 1 つのカラムをコンマ区切りの文字列にコピーするのに役立ちます。 複数の値をまとめて IN 句に貼り付けるのに非常に便利です。

SQL-Insert-Multirow は複数の新しい行を挿入する単一の INSERT ステートメントを生成します。

値を引用符で囲まない

値を引用符で囲まない

CSV フォーマットの設定に新しいオプション、never quote values(値を引用符で囲まない)が追加されました。

イントロスペクション

イントロスペクション診断情報の収集

イントロスペクション診断情報の収集

イントロスペクションは DataGrip がデータベースに関する情報を取得するプロセスです。 この情報はデータベースエクスプローラーでのオブジェクトと DDL の表示、コード補完機能などに使用されます。

イントロスペクションの実行時に問題が発生する場合があります。 このバージョンからは問題発生時に有益なデータを収集し、それをサポートチームに提供したり、課題トラッカーのチケットに含めたりできるため、最大限の支援を受けることができます。

Diagnostic refresh(診断情報の更新)を使用するとデータベースの情報が更新され、すべてのクエリが単一ファイルに収集されてエクスプローラーや Finder に表示されます。 このファイルは必要に応じて自分で検査することもできますが、主にイントロスペクションが遅すぎる場合に私たちに送付していただくことを想定しています。

Prepare introspector diagnostic(イントロスペクション診断の準備)はイントロスペクションが正常に動作しない場合、すなわち古い情報が表示されたり、新しいオブジェクトが表示されない場合にこれら 3 つのファイルを生成し、当社に送付いただく必要のあるフォルダーを表示します。

権限の許可

権限の許可

DataGrip がオブジェクトの権限の許可を認識し、オブジェクトの DDL に表示するようになりました。

データベースツリーでの変更表示

データベースツリーでの変更表示

何らかのオブジェクトの DDL を変更し、それをまだ送信していない場合、送信待ちのオブジェクトがデータベースツリーでハイライトされます。 以前は Database Changes ツールウィンドウでしか変更を確認できませんでした。

さらなる PostgreSQL テーブルプロパティへの対応

さらなる PostgreSQL テーブルプロパティへの対応

DataGrip が TABLESPACEINDEX ACCESS METHOD を含む DDL を生成するようになりました。

新しいオブジェクト

新しいオブジェクト Greenplum

DataGrip がデータベースツリーに表示するオブジェクトの種類が増えました。 新しいオブジェクトは collation(照合順序)/ materialized view(マテリアライズドビュー)/ foreign table(外部テーブル)/ foreign data wrapper(外部データラッパー)/ foreign server(外部サーバー)/ user mapping(ユーザーマッピング)です。

オーバーロードされたプロシージャーを正しく表示

オーバーロードされたプロシージャーを正しく表示 Oracle

これまでは 1 つのパッケージ内でオーバーロードされたプロシージャーが 1 つの項目として表示されていました。 今後はそのような不便は生じません。 角括弧内の数字は、データベース内のプロシージャーのネイティブなインデックスです。

コーディング支援

Generic 言語用のフォーマッター

Generic 言語用のフォーマッター

未サポートのデータベースを操作する際には、SQL フォーマッターが役に立ちます。

名前変更オプション

名前変更オプション

Inline renaming(インラインでの名前変更)に、コメント / 文字列 / テキストの出現箇所を処理するオプションが追加されました。

タイポの訂正

タイポの訂正

Windows では Alt+Enter を、macOS では Opt+Enter を使用すると、ネストしたメニューを開くことなくタイポを訂正するオプションが表示されます。

競合する呼び出しのインスペクション

競合する呼び出しのインスペクション Oracle

Oracle 用の新しいインスペクションを導入しました。オーバーロードされた関数を使用する場合に呼び出しが競合した場合、次のように DataGrip が警告を表示します。

フォーマッターでの新しい大文字小文字の区別オプション

フォーマッターでの新しい大文字小文字の区別オプション

ビルトイン型カスタム型(単なるの代わり)、関数に対して大文字小文字を区別する設定を個別に定義できるようになりました。

クエリの実行

実行構成

スクリプトの実行を支援する新しいユーザビリティ機能を導入しました。

スキーマの切り替え

スキーマの切り替え

DataGrip はスクリプトにスキーマの切り替えが含まれている場合に警告します。

デフォルトスキーマの表示

デフォルトスキーマの表示

単にデータソースをターゲットに選択した場合、DataGrip は具体的にどのスキーマでスクリプトが実行されるかを表示します。

履歴のターゲット

履歴のターゲット

履歴から小さな時計ボタンをクリックするだけで、ターゲットを選択できるようにもしました。

個別タブにコンソールの出力を表示

個別タブにコンソールの出力を表示

Services パネルが登場する以前の操作感を取り戻したい方や、画面幅をすべて使用したい方のために、Open new services tab for sessions(セッション用に新しいサービスタブを開く)オプションを Settings/Preferences | Database | General に導入しました。 このオプションをオンにすると、新しいデータベースセッションを開始するたびに独立したタブが作成されるため、Services ツリーが表示されなくなります。 グリッドまたは出力だけです!

タブの名前

タブの名前 SQL Server

結果タブに命名できる機能は多くのユーザーに好評を博していますが、SQL Server で複数のステートメントを同時に実行した場合には動作していませんでした。 このリリースではこの問題を解消しており、このような場合でも結果タブに命名できるようになりました。

‘Explain plan’ でインデックスの作成を提案

‘Explain plan’ でインデックスの作成を提案 SQL Server

DataGrip は Explain plan ツールウィンドウでは、クエリのパフォーマンス向上に役立つと思われる場合にインデックスの作成が提案されます。

DDL 編集

古いテーブル構造に関する警告

古いテーブル構造に関する警告

ビュー、ルーチン、または関数を編集用に開いた後にデータベース内のオブジェクトが変更された状態で古いバージョンを編集しようとした場合、DataGrip は警告を表示します。

2020.3 からはテーブルも警告の対象になりました。

オブジェクトの削除に関する警告

オブジェクトの削除に関する警告

状況を完全に把握できるよう、追加の機能強化を行いました。具体的には、オブジェクトが完全に削除された場合に専用の警告を表示するようにしました。

例えば、あなたが inventory_in_stock ルーチンの DDL を開いて変更を加えた瞬間に別のユーザーがそれを破棄した場合を想定してみましょう。

この場合、DataGrip は次の 3 つのオプションを提示します。

  • Revert local changes(ローカルの変更を元に戻す):プロシージャーの編集を中止し、削除された事実を受け入れる場合に使用します。 DDL エディターは閉じられます。
  • Keep local changes(ローカルの変更を維持):プロシージャーの編集を続けたい場合に使用します。ただし、実際には [送信] を押した時点でプロシージャーが作成されます。 サーバー側のバージョンはもう存在しないため、変更箇所はハイライトされません。
  • Restore in the database(データベース内に復元):最後に読み込んだ時点でキャッシュされたバージョンから DataGrip にプロシージャーを復元させる場合に使用します。 サーバー側のバージョンを再び使用できるようになるため、変更箇所は引き続きハイライトされます。
移行アクションがどこでも使用可能に

移行アクションがどこでも使用可能に

Submit / Rollback / Show Changes の各アクションをオブジェクトのコンテキスト内のどこでも使用できるようになりました。 また、オブジェクトのコンテキストメニューにも表示されます。 例えば、複数のルーチンをロールバックしてローカルの変更を取り消したい場合は、データベースエクスプローラーでそれらを選択し、Database Tools メニューセクションから Rollback アクションを使用できます。

一般

タブのドラッグアンドドロップ

タブのドラッグアンドドロップ

タブをドラッグアンドドロップしてエディターを上下または左右に分割できるようになりました。 結果を分割モードのタブにピン留めしたい場合は、それぞれに対して In-Editor Results(エディタ内で結果を確認)を使用してください。

ウェルカム画面

ウェルカム画面

他の JetBrains IDE とは異なり、DataGrip にはこれまでウェルカム画面がありませんでした。 DataGrip 2020.3 を開くと、最後に開いた(またはデフォルトの)プロジェクトに直接移動します。 ただし、すべてのプロジェクトを閉じていた場合はウェルカム画面が表示されます。 この画面からすべてのプロジェクトにアクセスし、プラグインを管理し、IDE をカスタマイズできます。

プロジェクトごとのプラグイン

プロジェクトごとのプラグイン

Settings | Plugins に現在のプロジェクトのみにプラグインを有効または無効にするオプションが追加されました。 プラグインはそれを必要とする最初のプロジェクトが開かれた時点で自動的にロードされ、同様の最後のプロジェクトが閉じられた時点で自動的にアンロードされます。

現在のテーマを OS の設定に同期

現在のテーマを OS の設定に同期

Settings/Preferences | Appearance & Behavior | Appearance | ThemeSync with OS(OS と同期する)が選択されている場合、OS の UI 変更に合わせて IDE がライトテーマかダークテーマに自動的に切り替わります。

macOS のショートカットを言葉で表示

macOS のショートカットを言葉で表示

macOS のショートカットが読みづらい場合はレジストリで ide.macos.disable.native.shortcut.symbols キーを切り替えてみてください。 レジストリは Find ActionCmd+Shift+A)を使用し、その画面で ‘Registry’ を入力すると呼び出すことができます。

プレビュータブ

プレビュータブ

ワンクリックでファイルをプレビュータブで開けるようになりました。 この機能を有効にするには、Files ツールウィンドウの歯車アイコンをクリックし、Enable Preview Tab(プレビュータブを有効化)を選択します。 このように開いたファイルの編集を開始すると、プレビューが中断されて通常のファイル編集画面に移行します。

簡易計算機

簡易計算機

Search Everywhere ダイアログの検索バーに簡単な数式を入力すると、計算結果が即座に表示されるようになりました。

ファイルの関連付け

ファイルの関連付け

2020.3 以降、DataGrip を特定ファイルタイプを開くためのデフォルトアプリケーションに設定できるようになりました。 そのためには Settings/Preferences | Settings | Editor | File Types に移動し、Associate file types with DataGrip(ファイルタイプと DataGrip の関連付け)ボタンをクリックしてください。

また、データベース関連のファイル以外にも適用可能です。 DataGrip は JSON / HTML / MarkDown* ファイルに適したエディターでもあります。

*要プラグイン

すべてを展開

すべてを展開

Collapse All(すべて折りたたむ)と共に Expand All(すべてを展開)ボタンが Database および Files ツールウィンドウに表示されるようになりました。 この機能は Project ビューから選択するか、Cmd+プラス記号(macOS)または Ctrl+Numpad+プラス記号(Windows または Linux)を押してください。

重要な修正

  • 高速検索が呼び出された際、Copy アクションが高速検索のテキストではなく、リストされた項目のテキストをコピーするようになりました:IDEA-238064
  • MongoDB の Test Connection(テスト接続)の問題を解消しました。 これまでは接続が確立していない場合でも常に成功していました。
  • MySQL の BLOB フィールドが再び編集可能になりました:DBE-11311
  • Limit page size(ページサイズを制限する)設定が変更された後にデータエディターでカスタムページサイズがリセットされてしまう:DBE-11510
  • MySQL でスクリプト内の USE ステートメントが初回クエリの後にリセットされない:DBE-9145