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 をサポートしました。 DataGrip がサポートしているのは Couchbase Query サービスであり、Couchbase Analytics サービスではないということにご注意ください。
これは、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-row と SQL-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 ツールウィンドウでしか変更を確認できませんでした。
DataGrip が TABLESPACE と INDEX ACCESS METHOD を含む DDL を生成するようになりました。
DataGrip がデータベースツリーに表示するオブジェクトの種類が増えました。 新しいオブジェクトは collation(照合順序)/ materialized view(マテリアライズドビュー)/ foreign table(外部テーブル)/ foreign data wrapper(外部データラッパー)/ foreign server(外部サーバー)/ user mapping(ユーザーマッピング)です。
これまでは 1 つのパッケージ内でオーバーロードされたプロシージャーが 1 つの項目として表示されていました。 今後はそのような不便は生じません。 角括弧内の数字は、データベース内のプロシージャーのネイティブなインデックスです。
未サポートのデータベースを操作する際には、SQL フォーマッターが役に立ちます。
Inline renaming(インラインでの名前変更)に、コメント / 文字列 / テキストの出現箇所を処理するオプションが追加されました。
Windows では Alt+Enter を、macOS では Opt+Enter を使用すると、ネストしたメニューを開くことなくタイポを訂正するオプションが表示されます。
Oracle 用の新しいインスペクションを導入しました。オーバーロードされた関数を使用する場合に呼び出しが競合した場合、次のように DataGrip が警告を表示します。
ビルトイン型、カスタム型(単なる型の代わり)、関数に対して大文字小文字を区別する設定を個別に定義できるようになりました。
スクリプトの実行を支援する新しいユーザビリティ機能を導入しました。
DataGrip はスクリプトにスキーマの切り替えが含まれている場合に警告します。
単にデータソースをターゲットに選択した場合、DataGrip は具体的にどのスキーマでスクリプトが実行されるかを表示します。
履歴から小さな時計ボタンをクリックするだけで、ターゲットを選択できるようにもしました。
Services パネルが登場する以前の操作感を取り戻したい方や、画面幅をすべて使用したい方のために、Open new services tab for sessions(セッション用に新しいサービスタブを開く)オプションを Settings/Preferences | Database | General に導入しました。 このオプションをオンにすると、新しいデータベースセッションを開始するたびに独立したタブが作成されるため、Services ツリーが表示されなくなります。 グリッドまたは出力だけです!
結果タブに命名できる機能は多くのユーザーに好評を博していますが、SQL Server で複数のステートメントを同時に実行した場合には動作していませんでした。 このリリースではこの問題を解消しており、このような場合でも結果タブに命名できるようになりました。
DataGrip は Explain plan ツールウィンドウでは、クエリのパフォーマンス向上に役立つと思われる場合にインデックスの作成が提案されます。
ビュー、ルーチン、または関数を編集用に開いた後にデータベース内のオブジェクトが変更された状態で古いバージョンを編集しようとした場合、DataGrip は警告を表示します。
2020.3 からはテーブルも警告の対象になりました。
状況を完全に把握できるよう、追加の機能強化を行いました。具体的には、オブジェクトが完全に削除された場合に専用の警告を表示するようにしました。
例えば、あなたが inventory_in_stock ルーチンの DDL を開いて変更を加えた瞬間に別のユーザーがそれを破棄した場合を想定してみましょう。
この場合、DataGrip は次の 3 つのオプションを提示します。
Submit / Rollback / Show Changes の各アクションをオブジェクトのコンテキスト内のどこでも使用できるようになりました。 また、オブジェクトのコンテキストメニューにも表示されます。 例えば、複数のルーチンをロールバックしてローカルの変更を取り消したい場合は、データベースエクスプローラーでそれらを選択し、Database Tools メニューセクションから Rollback アクションを使用できます。
タブをドラッグアンドドロップしてエディターを上下または左右に分割できるようになりました。 結果を分割モードのタブにピン留めしたい場合は、それぞれに対して In-Editor Results(エディタ内で結果を確認)を使用してください。
他の JetBrains IDE とは異なり、DataGrip にはこれまでウェルカム画面がありませんでした。 DataGrip 2020.3 を開くと、最後に開いた(またはデフォルトの)プロジェクトに直接移動します。 ただし、すべてのプロジェクトを閉じていた場合はウェルカム画面が表示されます。 この画面からすべてのプロジェクトにアクセスし、プラグインを管理し、IDE をカスタマイズできます。
Settings | Plugins に現在のプロジェクトのみにプラグインを有効または無効にするオプションが追加されました。 プラグインはそれを必要とする最初のプロジェクトが開かれた時点で自動的にロードされ、同様の最後のプロジェクトが閉じられた時点で自動的にアンロードされます。
Settings/Preferences | Appearance & Behavior | Appearance | Theme で Sync with OS(OS と同期する)が選択されている場合、OS の UI 変更に合わせて IDE がライトテーマかダークテーマに自動的に切り替わります。
macOS のショートカットが読みづらい場合はレジストリで ide.macos.disable.native.shortcut.symbols キーを切り替えてみてください。 レジストリは Find Action(Cmd+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)を押してください。