DataGrip 2019.1の新機能

新しいDBMSのサポート

このリリースサイクルでは、複数の新しいデータベースのサポートを重点的に強化しています。

GreenplumPostgreSQLに基づく分析データベースです。 現在、Pivotalとオープンソースコミュニティにより開発されています。

Verticaは大量のデータを処理するためのカラム指向のストレージです。

Apache Hiveはデータのクエリと分析を提供するためにApache Hadoop上に構築されたデータウェアハウスです。

Snowflakeはクラウドベースのデータウェアハウスです。 2019.1では、DataGripはSQLダイアレクトのみをサポートしています。イントロスペクションのサポートは今後追加される予定です。

接続ダイアログ

一般

接続手順をより分かりやすくするため、フィールドを並べ替えました。

Connection typeフィールドは以前のURL typeに代わるものです。 このフィールドはこのダイアログ全体を決めるものであるため、ドライバの選択オプションと共に画面上に配置するようにしました。

Databaseフィールドは資格情報の後に配置しています。データベースのリストを提供するために資格情報が必要になる場合があるからです。 リストはCtrl+Spaceで呼び出せます。

パスワード保存設定がドロップダウンリストで実装されました。 オプションはNever(保存しない)Until restart(再起動するまで)For session(セッション中)Forever(永久)の4つから選択できます。 For Session(セッション中)だけは若干の説明が必要かと思われます。このオプションは、データソースから切断するまでパスワードを保存します。

また、空のパスワードをUIで設定できるようになりました。具体的にはコンテキストメニューを使用します。

Test Connection(テスト接続)の結果はインラインで表示され、小さな専用ボタンでクリップボードにコピーできるようになりました。 トラブルシューティングページへのリンクも追加されました。

2019.1以降、ダウンロード済みのドライバがない場合にTest Connectionボタンは無効化されません。 Test Connectionをクリックすると、DataGripはJDBCドライバをダウンロードするよう促します。

オプション

Read-only(読み取り専用)Auto-Sync(自動同期)およびTransaction control(トランザクション制御)設定をGeneralタブからこの画面に移動しました。

新たに導入された設定
Run keep-alive query each N seconds(N秒ごとにキープアライブクエリを実行)は接続を維持するのに役立ちます。 サポート対象外のデータベースに対してドライバ設定でカスタムクエリを定義することができます。
Auto-disconnect after N seconds(N秒後に自動切断) これは読んで字の通りかと思います。
Startup script(起動スクリプト)は接続を確立するたびに実行されるSQLクエリです。 Single connection mode(単一接続モード)のチェックが外れている場合、新しいコンソールを起動するたびに新たに接続が確立されることを覚えておいてください。

設定名の変更
Warn if editing an outdated DDL(古いDDLを編集時に警告)はかつてのNotify when the outdated object is opened(古いオブジェクトを開いた際に通知)の新しい名前です。

スキーマ

Object filter(オブジェクトフィルタ)は、Optionsタブからここへ移されました。

データソースリスト

小規模な機能強化:接続ダイアログ内のデータソースリストで、DDL Data Sourcesに専用のグループが表示されるようになりました。

検索とナビゲーション

Recent Locations(最近の場所)

最近訪問した、または変更したコードの場所をリスト表示するRecent Locationsが登場しました。 このポップアップには、それらのコード位置前後の数行がコードスニペット形式で表示されます。

このポップアップはRecent Filesに着想を得ていますが、訪問したコードの場所で検索できる機能を備えています。 このポップアップはコードの内容を覚えてはいるものの、それがどこにあるのか思い出せない場合に役立ちます。 特に複数のクエリコンソールを使って作業している場合に役立ちます。それらコンソールの名前は通常似通っているからです!

ポップアップから場所を削除するには、Delete/Backspaceを押してください。

このポップアップのデフォルトのショートカットは Ctrl+Shift+E です。

Ctrl+Shift+Eを押してRecently changed filesを呼び出すのに慣れている場合は、代わりにCtrl+Eを2回押してください。

Find in path

DataGripではオブジェクトのソースコード内を検索できます。 これは、かつてはAll Placesを範囲に選択した場合のみ実現可能でした。 今回、このUIを若干整理してModuleタブとProjectタブを削除しました。

新しい範囲、Attached Directoriesを使用できるようになりました。 この範囲は、Filesツールウィンドウ内のファイルを検索したい場合に使用してください。

Go-toポップアップ

ここからすべての移動アクションが動作するようになりました。

For instance, if you’re searching for a table, see what you can open from right here:
Table’s DDL: Ctrl+B.
Table’s data: F4 (Enter does the same for tables).
Modify Table dialog: Ctrl+F6.
Locate in… popup: Alt+F1 (Use it to see the object in the database tree view).
Quick doc popup: Ctrl+Q.
SQL generator: Ctrl+Alt+G.

ここでは表示中のオブジェクトに関するその他多くのアクションがあります!

また、Database | GeneralNavigation設定もお忘れなく。 自由に独自のフローを作成してください。おそらくDataGripは現在考えられるすべてのユースケースに対応していると思われます。

コードインサイト

補完時の結合項目

CREATEおよびDROPステートメントの補完リストにいくつかの結合オプションを追加しました。 例えば、CREATEを入力し始めるとCREATE TABLEを選択できるようになります。

もう一つのメリットは、略語を使えるということです!

新しいインスペクション

Usages of GOTO statements(GOTOステートメントの使用箇所)Named arguments should be used(名前付き引数を使用すべき)インスペクションはデフォルトではオフになっています。これらに関する報告が必要なのは一部の開発者だけだからです。

Usages of GOTO statementsインスペクションには以下の3つのオプションがあります。
- Report all GOTO statements(すべてのGOTOステートメントを報告)
- Report uses of GOTO statements to exit a loop(ループを抜けるために使用されているGOTOステートメントを報告)
- Report backward GOTO statements(逆向きのGOTOステートメントを報告)

Named arguments should be used(名前付き引数を使用すべき)。 コードの可読性が向上するため、この書き方を好む開発者もいます。

また、DataGripはプロシージャや関数の中で使用しているカーソルが未オープンの場合にも警告します。

ファイルを扱う

Settings/Preferences | Appearance & Behavior | System SettingsDefault Directory(デフォルトのディレクトリ)オプションが追加されました。 このオプションは、新規プロジェクトがデフォルトで作成される場所を定義します。

コンソールファイル用の <0>Save as…アクション:
1. デフォルトのプロジェクトディレクトリを提供します。
2. 最後に選択したフォルダを記録します。

新しいアクション、Detach directory(ディレクトリを切り離す)Filesツールウィンドウでフォルダに適用できるようになりました。 このアクションはコンテキストメニューから使用するか、ショートカットを割り当ててください。

ファイルを開くことなく、コンテキストメニューからファイルを整形することができます。

データベースツリービュー

IBM DB2用のデータベースイントロスペクションを改良しました。 データベースツリーに新しいオブジェクト(トリガー、メソッド、モジュール、データ型、変数、条件、シーケンス、チェック制約、ロール、グローバル一時テーブル)が表示されるようになりました。

このツリーは自動的にコンテキストを保存するため、常にデータソース名が上に表示されます。

また、まだサポートされていない一部のデータベース用のアイコンを追加しました。 これまでは、未サポートのデータベースのデータソースが多数存在する場合、Databaseツールウィンドウの表示が乱雑になる可能性がありました。 この改良によって多少なりとも見栄えが良くなっていることを願っています。

その他の項目には、新しいカスタムアイコンのいずれかを使用できます。 ドライバ設定のOptionsタブでアイコンを選択してください。

その他

カスタマイズ可能なテーマ

このリリースではIDEの外観を完全にカスタマイズできる機能を追加しているため、独自のテーマをゼロからデザインすることができます。 すぐに始められるように、真新しいテーマをいくつか作成いたしました。 これらは、プラグインとしてダウンロードできます。

事実上、何の色でも変更できます。 DevKitを使用して独自のテーマプラグインを作成し、JSONファイルを介してIDEの外観を変更してください。 以下に便利なリンクがいくつかございます:

独自カスタムテーマの作成方法に関する詳細なチュートリアル

IntelliJプラットフォーム向けカスタムテーマの作成に関するブログ投稿

シアンテーマ

ダークパープルテーマ

データエディタ

このフィルタはクリップボード内の値を使用できるようになったため、若干便利になりました。

DEFINERのサポート

新たにMySQLMariaDBDEFINER属性に対応しました。

第一に、SQL Generatorが生成したコードにDEFINER属性を追加すべきかどうかを選択できます。

第二に、移行中にDEFINER属性を無視することができます。

バグ修正

  • イントロスペクション用に選択されていないスキーマは、比較に用いられなくなりました。 DBE-7604
  • 外部キーを作成する際にスキーマ修飾子が欠落しなくなりました。 DBE-4993
  • Modify Tableダイアログで、外部キーの参照カラムが削除されなくなりました。 DBE-7560
  • 到達不能コードを検出する際の誤検出を修正しました。 DBE-7554
  • [MySQL] すべてのコネクタで、空の日付の代わりに NULL が返される問題をついに修正しました。 DBE-69
  • [MariaDB] イントロスペクション中に発生するエラーを解消しました。 DBE-7743
  • [SQL Server] COUNT()が不正に集計される問題を修正しました。 ドライバ側での問題はまだ修正されていませんので、本ソフトウェア側で変更を行いました。 DBE-2114
  • [SQL Server] テーブルが重複している場合がありました。 もうこの問題は発生しません。 DBE-7297
  • [Oracle] Enable DBMS_OUTPUT ボタンが復活しました。 DBE-4702
  • [Oracle] 一時セグメントの問題を修正しました DBE-7443
  • [Oracle] パッケージと関数のソースコードに対してイントロスペクションが適切に実行されるようになりました。 DBE-6768