DataGrip 2021.2 がリリースされました! 2021 年の 2 回目となるメジャーアップデートでは、さまざまな機能改善が行われています。 その内容を詳しく見てみましょう!
DDL データソースの生成は、データベースのシームレスなバージョン管理を実現するための長期的な開発ステップの 1 つです。 この機能を使用すると、DDL ファイルを VCS システムに保管できるため、データベース構造が更新されるたびに再生成できます。
DDL データソースは、実際のデータソースを基に生成できるようになりました。 DDL ファイルはローカルで作成され、新しいデータソースは同ファイルに基づいて作成されます。 こうすることで、同ファイルの再生成および DDL データソースの更新がいつでも行えます。
それでは、その手順を説明します。
SQL Scripts コンテキストメニューに新しいメニューアイテム Dump to DDL data source を追加しました。
ダイアログが開くと、新しく作成されるファイルを格納するフォルダーを指定する必要があります。
Generation タブで、こうした DDL ファイルを生成する方法を指定します。
最後に、「OK」をクリックして DDL データソースを作成します。
新しいファイルが格納されたフォルダーが自動的にプロジェクトにアタッチされます。
v2021.2 では、UI を使って DDL データソースにオブジェクトを作成できます。 対応するファイルはローカルで作成されます。
ローカル履歴内で特定のリビジョンを探している場合は、テキスト検索が便利です!
DataGrip は、オブジェクトのソースコードのローカルでの変更を追跡するようになりました。 プロシージャや関数を使用するときに重宝します。
オブジェクトのソースはファイルに保存されるため、外部での変更もすべてローカルでの変更として扱われます。 データベースを解析すると、このファイルは更新されます。
関数やプロシージャに加えられる変更内容を追跡するには、ローカル履歴のポップアップを使用します。 外部での変更は、2 つのイントロスペクションが実行される間に起るものであれば、1 つの変更として扱われます。
タブの短い名前が一部のユーザーに好評でなかったことを受け、長い名前に戻せるオプションを導入しました。 タブの長い名前を好まれる方は、Shorten Tab Titles オプションからチェックを外してください。
長い間、Hide All Tool Windows アクションを使用してきました (呼び出すときはタブをダブルクリックするか、Shift+Ctrl+F12 を押す)。 多くのユーザーは、それを Maximize Editor アクションとして扱い、またそれは同じ動作をしていました。
split メカニズムを導入した後、状況はさらに複雑化しました。 「このアクションは split タブを非表示にするべきかどうか」を検討した後、 以下の変更を加えました。
コード補完の一覧に表示するオブジェクトを定義できるようになりました (スキーマスイッチャー (または検索パス) のオブジェクトのみ、現在のスコープのオブジェクト、またはすべてのスキーマのオブジェクト)。
これはスマート補完によって管理することもできます。 スマート補完は、補完ホットキー (通常 Ctrl+Space) を数回押すと呼び出されます。
MongoDB のコード補完でフィールドと演算子を使用できるようになりました。 詳しくは、こちらの記事をお読みください。
複数のデータベース間で使用される類義語のコード補完を使用できるようになりました。
計算列は INSERT
文を補完する際に考慮されますが、提案されるアイテムには含まれません。
再帰共通テーブル式 (CTE) を使用するクエリは、適切にハイライトされるようになり、選択しなくても実行できるようになりました。
CTE 名が AS
キーワードの前に記述される共通テーブル式の構文がサポートされるようになりました。
データベースのエクスプローラー設定 (歯車アイコン) にある Separate Procedures and Function オプションをオンにすると、ゆぐに有効化されます。
SQL Server には、scalar 関数とテーブル関数に専用のノードが用意されています。 PostgreSQL には、トリガー関数用のノードが用意されています。
新しいデータベースツリーのオプション Show Constraints and Triggers in the Schema を実行すると、データベースのエクスプローラーの中でトリガー、キー、インデックスのそれぞれに専用のノードが割り当てられます。
これが便利な理由
データベースのエクスプローラー設定で Sort Alphabetically オプションをオフにすると、オブジェクトの自然なソートが適用されます。
こちらは、Sort Alphabetically がオフになっている場合。
こちらは、Sort Alphabetically がオフになっている場合。
そして、Sort Alphabetically がオンになっている場合。
このリリースでは Cockroach DB が完全にサポートされます。 DataGrip は JDBC ベースのイントロスペクションではなく、ネイティブのイントロスペクションを使用するようになります。
JDBC ベースのイントロスペクションと比べて大幅に速度がアップします。 また、以前のバージョンでは、role、deftype、および check constraint のイントロスペクションは全く行えませんでした。 イントロスペクションの対象となったオブジェクトの完全な一覧には、database、role、privilege、schema、sequence、deftype、table、view、mat view、index、column、および constraints が含まれます。 partitions のイントロスペクションが行われない問題は認識されています。
以前、当社はバーチャル外部キーを作成するメカニズムを発表しました。 今回はそのメカニズムを使って、バーチャル外部キー付きの pg_catalog をカバーしました。 これにより、以下の 2 点を改善しました。
1 点目: システムテーブルに対してクエリを実行する際に JOIN
の補完を活用できる。
2 点目: システムテーブル内をデータによりナビゲートできる。
表領域、データファイル、一時ファイルのサポートを追加しました。 これらは、イントロスペクションが行われるようになりました。
DDL の生成にも含まれます。
これは現時点では完全なサポートではありません。リンクサーバーではオブジェクトのメタデータが使用できないためです。 リンクサーバーはデータベースのエクスプローラーに表示され、それらを作成するための DDL が生成されます。
前のリリースに導入されたコンテキストライブテンプレートがデータエディターから使用できるようになりました。 テーブルを操作しているときに、そのテーブルに対してクエリを実行する場合は、SQL スクリプトのアクションを利用すれば、簡単に行えます。
最近、追加ソート用に Alt+Click を導入しましたが、 マウスクリックで操作したい方は、この動作をカスタマイズできます。
MongoDB のコレクションに列を追加できるようになりました。 このアクションにより、コレクションのあらゆるドキュメントに新しいフィールドを追加できます。
Delete column を実行すると、表示されているページのデータだけでなく、コレクション全体のデータが削除されます。
UI データエディターを使用することにより、CSV ファイル内で列を追加・削除できるようになりました。
データエディターで作業しているときは、WHERE
フィールドと ORDER BY
フィールドに複雑な句を使用する場合があるかもしれません。 結果的に生成されるクエリを引き続き使用する場合は、歯車アイコンの下にある新しいアクション Copy Query to Console をご利用ください。 クエリがデフォルトのコンソールに開かれます。
スピーディにナビゲートできるよう、First row オプションを除去しました。 ポップアップは表示されず、すべての参照する行または参照される行を表示するテーブルに移動します。
別のスキーマのオブジェクトにポイントする外部キーがあり、同オブジェクトが同じ名前を持つ場合は、外部キーナビゲーションの UI に修飾された名前が表示されます。
DBE-12545: ORDER BY
フィールドのサイズが保存されるようになりました。
DBE-13055: タイムゾーン付きの値には常にタイムゾーンが表示されるようになりました。
DBE-9814: Oracle DATE
型の値は、時刻が設定されていなければ、時刻を表示しなくなりました。
DBE-12679: Oracle DATE
フィールドによるフィルタリングを実行できるようになりました。
DBE-12716: DB2 binary、blob、char for bit data、および varchar for bit data フィールドによるフィルタリングを実行できるようになりました。
ナビゲーションバーの動作がわかりやすくなりました ([Enter] キーは常にノードを拡張します)。
以前は、[Enter] キーを押すと、テーブルの場合はデータが、データソースの場合はコンソールが開いていました。
ナビゲーションバーでオブジェクトのノードを開くのではなく、オブジェクトからナビゲートする場合は、以下のナビゲーションショートカットが便利です。
関数やプロシージャ、演算子を検索する場合、DataGrip では Go To ウィンドウにシグネチャーが表示されるようになりました。 これは、オーバーロードを多用する場合に便利です。
本バージョンより、DataGrip の UI が中国語、韓国語、および日本語に完全にローカライズされています。 ローカライゼーションは、DataGrip へのインストールが簡単なバンドルされていない言語パックプラグインとして使用していただけます。 すでに 150 万人以上のユーザーが言語パックの一部ローカライズされた EAP バージョンを使用しています。 今回のリリースからは完全なローカライズ環境をご利用いただけます!
DataGrip では、プロジェクトがデフォルトで他のすべての IntelliJ ベースの IDE と同じ場所に配置されるようになりました (DataGripProjects サブフォルダー内にあるユーザーのホームフォルダー)。
DataGrip のプロジェクトは、データソース、コンソール、スクラッチファイル、および添付されるフォルダーを集めた複合体です。 以前は、構成フォルダーに保管されていたため、IDE を更新するたびに、プロジェクトは IDE 設定と一緒にコピーされていました。
これが原因で、データソースの一覧が空になってしまう場合がありました。 この問題は解決され、DataGrip は他の IDE との一貫性を維持しながら動作するようになりました。
プロジェクトを移行する際に起こるエラーが原因で、最初の EAP ビルドを使用していたユーザーの方は、お気に入りやブックマーク、実行構成、バーチャル外部キーに関するデータを失っていた可能性があります。 これらを復元するには、もう一度以前のバージョンから移行し直してください。 詳細は、DBE-13410 を参照してください。
これらのボタンを使用すると、Settings ウィンドウ内を簡単にかつスムーズに移動できます。
Advanced Settings を Preferences/Settings に新しいノードとして追加しました。 各ユースケースを対象としたオプションが利便性を考慮して IDE ツール別にグループ化されています。 設定の多くが Registry から移行されていますが、新しい設定も一部含まれています。
重要な設定
Find Action (Cmd+Shift+A) によりアクセスできる新しい Show Scratch Files アクションを実行すると、スニペット付きのスクラッチの一覧がポップアップに表示されます。 スピード検索と削除機能付きの Recent Locations ポップアップと同じ UI が設けられています。
クエリに対してデータが返されないときは、すでに非表示となっている Services ツールウィンドウをわざわざ表示する必要はありません。 今回のリリースより、Services ツールウィンドウを表示させる操作を定義できるようになりました。
DBE-12079: PostgreSQL イントロスペクターを改良しました。 ユーザーの皆さまにとっては、オブジェクトが重複しなくなったことが新しいイントロスペクターの一番の効果だと思います!
DBE-13164: バーチャル外部キーを使いながら JOIN
文を入力するときにフリーズしなくなりました。
DBE-194931: 空のスクラッチファイルは自動的に除去されるようになりました。