DataGrip 2024.2 がリリースされました!
2024 年で 2 回目となるメジャーアップデートでは、さまざまな機能改善が行われています。新機能と改善点を詳しく見てみましょう。
最初にお伝えしたいのは、新しい UI がすべてのユーザーを対象にデフォルト化されたことです。
JetBrains IDE の新しい UI は 2 年前に導入されて以来、継続的に改良が進められてきました。スムーズで段階的な移行を実現できるよう、JetBrains はユーザーからのフィードバックを入念に収集して IDE の外観と操作感を改善してきました。新しい UI は過去数回のリリースを経て採用率が高まり、フィードバックに基づいて主な問題が解決されています。
今回でようやくすべてのユーザーを対象に新しい UI を提供できるようになったと考えています。この新しい UI は JetBrains IDE の 2024.2 バージョン以降はデフォルトのオプションとして提供されるようになります。
クラシック UI をご希望の場合は、JetBrains Marketplace で入手可能な対応するプラグインをインストールすることで引き続き使用できます。
JetBrains は DataGrip 用の AI Assistant プラグインの開発と改善に尽力してきました。このリリースでは、データベースと連携する多数の機能を導入しています。
AI Assistant にエディター内に直接 SQL コードを生成するように依頼できます。依頼するには、エディターツールバーの Generate Code with AI(AI でコードを生成)ボタンをクリックしてプロンプトを入力してください。プロンプトは「Add queries that will create a books table and populate it with three sample rows(books テーブルを作成して 3 つのサンプル行を挿入するクエリを追加してください)」のように入力できます。
AI Assistant がコードを生成した後は提案ペインの下にある対応のボタンをクリックすることで、結果を採用するか、再生成するか、またはプロンプトを指定することができます。生成されたコードを AI チャットに挿入し、そのコードについて AI Assistant に質問することもできます。
プロンプトでデータベーススキーマをメンションすることで、AI Assistant チャットにデータベーススキーマを添付することができます。これを行うには、#
の後にデータベーススキーマ名を入力する形でプロンプトを入力します。たとえば、「Give me the query to get all actor names from #public
(#public からすべてのアクター名を取得するクエリを生成してください)」のように入力できます。
すると、AI Assistant がスキーマを解析してクエリを生成します。
他の JetBrains IDE では AI チャットにデータベーススキーマを添付する方法が他にないため、この機能は特に重要です。
また、添付したフォルダーのファイルをメンションすることもできます。これは特定のスクリプトをコンテキストとして AI Assisant に提供する場合に役立ちます。
AI Assistant を使用して SQL の問題をより深く理解し、修正できるようになりました。重要度レベルが「弱い警告」よりも高い問題については、AI Assistant が説明と修正を提案します。
説明を得るには、ハイライトされたコードを選択して ⌥⏎
/ Alt+Enter
を押し、AI Actions(AI アクション)を選択して Explain SQL problem under caret(キャレット位置の SQL の問題を説明)を選択してからインテンションアクションを呼び出します。すると、AI Assistant がチャットに説明を表示します。
問題を修正するには、AI Actions(AI アクション)ポップアップウィンドウで Fix SQL problem under caret(キャレット位置の SQL の問題を修正)を選択します。AI Assistant が SQL コードを修正後のコードに置換します。
この機能が適切な説明と修正を提案できるようにするには、データベーススキーマの添付が必要な場合があります。
AI Assistant がテーブルの変更を支援できるようになりました。Modify(変更)ダイアログで AI Assistant ボタンをクリックすると、AI Assistant ダイアログが呼び出されます。そのダイアログで必要な処理を AI Assistant に依頼できます。たとえば、「Switch all the VARCHAR
data types to CHAR
(すべての VARCHAR データ型を CHAR に切り替えてください)」のように依頼できます。
AI Assistant によりリクエストしたコードが生成されると、ダイアログのプレビューペインでそのコードをレビューできるようになります。
表形式のデータファイルからデータをインポートできるようになりました。スクリプト型のローダーを実装することで、以下のファイル形式をインポートできるようにしました。
データをインポートするには、Files(ファイル)ツールウィンドウからデータベースエクスプローラーのスキーマにファイルをドラッグし、Import(インポート)ダイアログでインポート設定を構成します。
また、DataGrip は表形式データファイルの内容をデータエディターに表示できるようにもなっています。Files(ファイル)ツールウィンドウでファイルをクリックすると、ファイルが開きます。この機能を無効にするには、Settings(設定)| Advanced Settings(高度な設定)に移動し、Open file as table if detected by scripted loader(ファイルがスクリプト型のローダーによって検出される場合はテーブルとして開く)設定を探して None(なし)を選択します。
重要!このローダーはスクリプト型のため、独自のカスタムローダーを作成して使用できます。カスタムのスクリプト型ローダーを追加する場合は、Scratches and Consoles(スクラッチとコンソール)| Extensions(拡張機能)| Database Tools and SQL(データベースツールと SQL)| data(データ)| loaders(ローダー)で特定のディレクトリに配置してください。
テーブルセルのフローティングツールバーを使用することにより、関連する行にはるかに簡単に移動できるようになりました。セルをクリックし、フローティングポップアップツールバーの Related Rows(関連する行)アイコンを続けてクリックします。
フローティングツールバーからこのアクションを消すには、ツールバーを開いて More(その他)をクリックしてから Customize This Toolbar(このツールバーのカスタマイズ)を選択します。Customize Grid Floating Toolbar(グリッドフローティングツールバーのカスタマイズ)ダイアログでアクションを選択し、Remove(除去)をクリックします。このアクションを復元するには、Settings(設定)| Appearance & Behavior(外観と動作)| Menus and Toolbars(メニューとツールバー)を開いて Grid Floating Toolbar(グリッドフローティングツールバー)を選択し、Add(追加)をクリックします。
このアクションのフローも単純化しました。以前はセルのコンテキストメニューでアクションを選択した際に動作のオプションがポップアップウィンドウに表示されていましたが、この動作のオプションを Settings(設定)| Advanced Settings(高度な設定)の Related Rows action behavior(関連する行アクションの動作)セレクターに移動しました。Navigate And Select First(移動して最初を選択する)オプションでは最初に参照された行が選択され、テーブル内のすべての行が表示されます。一方、Navigate And Filter All(移動してすべてをフィルターする)オプションでは参照された行のみが表示されます。
新しいフローティングツールバーではウェブリンクも開けるようになりました。
この機能はセキュリティの理由により、デフォルトではオフになっています。Settings(設定)/Preferences(環境設定)| Database(データベース)| Data Editor and Viewer(データエディターとビューアー)の URL Click Settings(URL クリックの設定)で有効にできます。
Search Everywhere(どこでも検索)ポップアップの Database(データベース)タブを強化しました!検索結果をデータベースオブジェクトのタイプで絞り込めるようになっています。これには 2 つの方法があります。
1 つは右上にあるフィルターアイコンを使用する方法です。結果を絞り込めるオブジェクトタイプの名前には、以下があります。
もう 1 つはコマンドを使用してオブジェクトのタイプで検索結果を絞り込む方法です。/
の後にオブジェクトのタイプとオブジェクト名を入力します。たとえば、/tables
と入力した場合はイントロスペクション対象のデータベーステーブルのリストになり、/tables film
と入力した場合は名前に「film」を含むテーブルが検索されます。
Search Everywhere(どこでも検索)ダイアログに検索対象のコードベース要素をプレビューするオプションが追加されました。ダイアログのツールバーにある Preview(プレビュー)アイコンでこの機能を有効にすると、検索結果の下にプレビューペインが表示されるようになり、追加のコンテキストを使用することができます。また、プロジェクト内をさらに簡単に移動できるようになります。
スコープドロップダウンリストを改良し、データソースが最上部に表示されるようにしました。
Text(テキスト)タブには新しい Cached Database Sources(キャッシュ済みデータベースソース)スコープも追加されています。これを使うと、データベースの関数、ビューなどのソースコード内を検索できます。
DataGrip は DDL ステートメントが実行されるたびにデータベースエクスプローラーのスキーマを自動的にリフレッシュします。この動作はデータソースプロパティで Auto sync(自動同期)オプションがオンになっている場合に有効になります。
たとえばシステムカタログが非常に遅い Oracle データベースなど、データベースに大量のオブジェクトが含まれている場合、この処理にはかなりの時間がかかる可能性があります。
2024.2 バージョンからは、このリフレッシュの仕組みがこれまで以上に効率化されています。DataGrip がクエリによってどのオブジェクトが変更された可能性があるかを解析し、その特定のオブジェクトセットのみをリフレッシュするようになりました。
重要!JetBrains はほとんどの場合に DataGrip が変更されたオブジェクトを検出するように最大限の努力を払っています。しかし、ステートメントが他のオブジェクトを間接的に変更している場合、DataGrip はそのような変更を見逃す可能性があります。たとえば、カスケードオプションが指定されたオブジェクトをドロップする場合や、プロシージャーまたは関数で使用されているテーブルを変更する場合などがあります。このような場合は Refresh(リフレッシュ)アクションを呼び出すことで、DataGrip に完全なデータベースのリフレッシュを実行させることができます。
接続スタートアップスクリプトで組み込みのマクロを使用できるようになりました。スクリプトにマクロを追加するには、File(ファイル)| Data Sources(データソース)に移動し、データソースを選択して Options(オプション)タブを開きます。次に、Startup script(スタートアップスクリプト)に移動して Insert Macros(マクロの挿入)をクリックします。
たとえば、接続を開始するユーザーの OS ユーザー名が必要な場合は OSUser マクロをスクリプトで使用できます(ALTER SESSION SET QUERY_TAG = '$OSUser$'
)。
SSL 接続で RSA 以外の証明書がサポートされるようになりました。
Iceberg、動的、およびハイブリッド Snowflake テーブルがイントロスペクションされてデータベースエクスプローラーに表示されるようになりました。