DataGrip 2022.3 の新機能

DataGrip 2022.3 がリリースされました! このメジャーアップデートでは、さまざまな機能強化が行われています。 では、その内容を見てみましょう!

全般

Redis のサポート

待望の Redis サポートが実装されました。 Redis Single Instance への接続、データビューアーでのキー値の確認、スマートコーディング支援を使用した Redis クエリの書き込みと実行などの操作を行えるようになっています。

サポートの内容を簡単にご紹介しましょう。

  • 接続: Redis Single Instance
  • イントロスペクション: データベースとキーのイントロスペクション。イントロスペクターにデフォルトのキーフィルターを設定することもできます。
  • データベースエクスプローラー: Redis バージョン 6.0 以降に対応したさまざまな型のキーを含む個別のフォルダーとそれよりも古いバージョンのキーをまとめて含むフォルダー
  • クエリの実行: JDBC ドライバーは大半のクエリの実行をサポートします。
  • コーディング支援: コードハイライト、キーワード補完、およびデータベースとキーの解決
  • オブジェクトエディター: キーの名前の変更と削除
  • データビューアー: フィルターおよび JSON ハイライト

詳細は、こちらのブログ記事をご覧ください。

新しい UI を設定で利用可能

今年 5 月に IntelliJ ベース IDE の新しい UI の限定プレビュープログラムを発表しました。 DataGrip もその例外ではありません!

この最初のステップでは、改良された製品の外観を限られた数のユーザーに導入することを目指していました。 このプレビュープログラムを通じて多くの有益なフィードバックを収集して整理し、すべてのユーザーに新しい UI をお試しいただけるようにしました。

Settings(設定)/ Preferences(環境設定)| Appearance & Behavior(外観と動作)| New UI Preview(新しい UI プレビュー)で新しい UI に切り替え可能ですので、ぜひお試しください。ご感想もお待ちしております。

DataGrip の新しい UI をより使いやすくするための作業は現在も進行中です。 たとえば、実行構成の作成は他の IDE では非常に重要な作業ですが、明るく青いボタンを最優先して割り当てるべきアクションではない可能性があります。 トップツールバーのカスタマイズに関するご意見がある場合は、ぜひお知らせください。

新しい Settings Sync(設定の同期)ソリューション

このリリースでは、IDE の設定を同期するためのソリューションを改良しました。 この改良は、デフォルトでバンドルされるプラグインによって実現しています。 新しい Settings Sync(設定の同期)オプションは、設定にあります。

以前は設定の同期に使用する IDE Settings SyncSettings Repository という 2 つの独立したプラグインがありました。

IDE Settings Sync を使用していた場合はデータが新しいプラグインに自動的に移行されるため、何も操作を行う必要はありません。

Settings Repository(設定リポジトリ)を使用していたユーザーは、現在のセットアップをそのまま使用することをお勧めします。データ移行機能がまだ開発中であるためです。 機能が準備できたら IDE 内で通知します。

設定はユーザーの JetBrains Account に接続されたクラウドに保存されます。 別の IntelliJ ベース IDE を同じ JetBrains Account で使用する場合は、設定が自動的に同期されます。

既知の課題: Settings(設定)の Database(データベース)セクションは、現在同期できません。 この機能は近日、2022.3 へのマイナーアップデートで利用可能になる予定です。

データソースは設定に含まれないため、ご注意ください。 データソースを共有する場合は、こちらのチュートリアルに従ってください。

仮想ビュー

この新しい概念も仮想的で、データベース内に実際にビューを作成せずにビューを使用できるようにするものです。 基本的には結果を取得する単なるクエリであり、DataGrip 内に保存されます。

 

仮想ビューはデータベースエクスプローラーに表示可能で、ダブルクリックで実行できます。

現在のところ、SQL コードでは仮想ビューを使用できません。

ダイアグラムの移動操作

ダイアグラム要素間を完全に移動できるようになりました。 次のようなすべての主な移動操作を実行できます。

  • DDL を開く: Ctrl/Cmd+B
  • データを開く場合: F4
  • データベースエクスプローラーで選択する: Alt/Opt+Shift+B
  • 変更: Cmd/Ctrl+F6

データベースエクスプローラー

クイックフィルター

もう 1 つの待望の機能がついに公開されました! クイック検索を使用する際にオブジェクトを絞り込めるようになりました。 一致しないすべてのオブジェクトは非表示になります。

パターンに基づくスキーマの絞り込み

この機能強化は、多数のさまざまなスキーマがある場合に役立ちます。 正規表現パターンに基づいてイントロスペクションのデータベースまたはスキーマを選択できるようになりました。 これを行うには、Add Pattern(パターンの追加)をクリックして、新しいノードに正規表現パターンを定義します。 データベース/スキーマが、そのパターンに従って選択されるようになります。

複数のパターンを追加した場合、それらは競合することなく組み合わされます。

旧バージョンとは異なり、All(すべて)ノードがデフォルトのスキーマを自動的に選択しなくなっているため、 All schemas(すべてのスキーマ)、Default schema(デフォルトのスキーマ)、または正規表現フィルターの適用から選択する必要があります。

グローバルデータソースの色

グローバルデータソースの色を設定すると、設定がデータソースと一緒に共有されるようになりました。

スクリプトファイルのドラッグアンドドロップ操作

スキーマに対してスクリプトを実行する場合、Files (ファイル)ツールウィンドウからスクリプトファイルをドラッグアンドドロップするだけで実行できるようになりました。

データエディター

日時データ型の書式

データエディターでの日時型のフィールドの表示方法をカスタマイズできるようになりました。 この設定は、Database(データベース)| Data Editor and Viewer(データエディターとビューアー)にあります。

 

現在のところ、以下の 3 つの型のフィールドで使用できます。
日時/タイムスタンプ(タイムゾーンの有無に関係ない)、時刻(タイムゾーンの有無に関係ない)、および日付

新しいエクストラクター: WHERE

選択した範囲の値を抽出して WHERE 句に組み込めるようになりました。

  • 1 つの列内の値は OR 演算子と結合されます。
  • 1 つの行内の値は AND 演算子と結合されます。
  • 1 つの列のみの値が抽出される場合は、IN 演算子内に結合されます。

複数の値による SQL の絞り込み

複数の値を選択して Filter by(絞り込み)アクションを実行した場合、条件が生成されるようになりました。

テキスト検索フィールド: 選択内容の挿入

テキスト検索で Ctrl/Cmd+F を押すと、検索フィールドにカーソルの下にある値が自動的に挿入されます。 これは、テキストエディターで一般的なロジックと同様のものです。

構造体の値を正しく表示 Big Query

ネストした各値が個別の列として表示されるようになり、構造体の値を読み取りやすくなりました。

コードの操作

インテンションアクションのプレビュー

IDE の提案を適用した場合にクエリがどのように変わるかをすぐに確認できるようになりました。 プレビューは使用可能なインテンションアクションのリストを開き、オプションにマウスポインターを合わせたときに表示されます。
このプレビュー機能は、インテンションアクションのリストが開いている状態で F1/Ctrl+Q を押すと無効にできます。

単一行のコピー&貼り付け操作

テキストエディターで何も選択されていない状態で Ctrl/Cmd+C を押すと、すべての行が自動的に選択されてコピーされます。 この動作は従来と同じですが、行の貼り付けも簡単にすることで、このアクションを完成させました。 以下の動画に示すとおり、何も選択されていない状態でコピーされた行は改行付きの新しい行として貼り付けられます。

SQL スキーマジェネレーターの新しいレイアウト: Per Object By Schema and Type(スキーマおよび型別のオブジェクト単位)

新しいレイアウトは、Per Object By Schema and Type(スキーマおよび型別のオブジェクト単位)と呼ばれます。 このレイアウトがスキーマ全体の SQL 生成に使用される場合、生成されたファイルはオブジェクトのタイプ(テーブル、ビューなど)に従ってフォルダーに保存されます。

修正

  • DBE-6156: Oracle SET ROW がサポートされるようになりました。
  • DBE-12766: SQL Server $PARTITION がサポートされるようになりました。

テーブルの操作

仮想外部キーの UI

仮想外部キーの作成機能がしばらく前に導入されました。 このキーは主に次の目的で使用されます。

  • JOIN 句のコード補完
  • ダイアグラムでの仮想リレーションの表示
  • データリレーションに沿ったデータエディター内の移動操作

仮想キーを作成するには、クエリの JOIN 句で Store Relation(リレーションの保存)インテンションアクションを使用するのが主な方法でした。 この方法は少々発見しづらく、この機能そのものに直感的な使用方法が欠けていました。 そこで、以下のように改善を加えました。

仮想外部キーがデータベースエクスプローラーに表示されるようになりました。

仮想外部キーをデータベースエクスプローラーと Modify Table(テーブルの変更)ダイアログで作成してドロップできます。

クイックドキュメントのテーブルサイズ MySQL PostgreSQL

テーブルのサイズが、MySQL と PostgreSQL のクイックドキュメントポップアップに表示されるようになりました。 テーブルのサイズを表示するには、Show table preview(テーブルプレビューの表示)をクリックします。

接続

セッションテンプレートの起動スクリプト

セッションテンプレートの起動スクリプトを設定できるようになりました。 これにより、対応するテンプレートに基づいて新しいセッションが作成されるたびにスクリプトが実行されるようになります。 たとえば、DataGrip は Snowflake でのイントロスペクションに use secondary roles all ステートメントを実行できます。

認証オプション MongoDB

MongoDB の接続ダイアログに多数の認証メカニズムを追加しました。 それらを使用するには、ドライバーをバージョン 1.16 にアップデートしてください。

スキーマ差分ビューアー

オブジェクト依存関係のサポート

スキーマ差分ビューアーで依存するオブジェクトが考慮されるようになりました。 このようなオブジェクトで最も重要なものは、 PostgreSQL の id 列です。 id が同じ 2 つの列で関連するシーケンスが異なっている場合、それら 2 つの列を比較すると違いが表示されます。

 

別の例としては、別スキーマからプロシージャを呼び出すトリガーが挙げられます。 今後、このようなトリガーの差分はルーチン名が異なる場合に表示されます。

スキーマ差分ビューアーに関しては、次のような 2 つの大きな既知の制限がまだ存在することを明確にしておきます。

  • DBE-16814: ルーチン/ビューがその本体のオブジェクトを参照する場合、正しいスクリプトの順序は保証されません。 たとえば、あるルーチンが別のルーチンを呼び出す場合、後者が前者のルーチンの前に作成されるという保証はありません。
  • DBE-15598: 一部のケースでは、ソースオブジェクトの本体、デフォルトの式などの中でオブジェクト修飾が不正になります。