データベースオブジェクトのソースコードを変更する
DataGrip は、データベースにソースコードを格納しているオブジェクトへの変更を追跡します。 これらのオブジェクトは、トリガー、プロシージャ、関数、ビュー、その他のオブジェクトである可能性があります。 エディターでこれらのオブジェクトに加えたすべての変更は、オブジェクトのソースコードのローカルバージョンとして保存されます。
ソースコードの更新
DataGrip は、イントロスペクションプロセス中にデータベースの情報を取得します。 この情報は、 データベースエクスプローラー 内のオブジェクトの表示、その DDL の表示、完了時のオブジェクトの提案、コーディング支援のためのその他の機能に使用されます。
データベースオブジェクトの DDL を編集して変更を送信することにより、データベースオブジェクトのソースコードを直接更新できます。 IDE は移行スクリプトを生成し、データベースで実行します。
データベースの変更 ツールウィンドウには、すべての変更の概要が表示されます。
データソースのソースコードを読み込む
DataGrip は、イントロスペクション中にデータソースのソースコードを取得します。 このプロセスは、データソースのプロパティで管理できます。
次のいずれかの方法でデータソースのプロパティを開きます。
に移動します。
データベースエクスプローラー (⌘ 1) ツールバーで、
データソース をクリックします。
Ctrl+Alt+Shift+S を押します。

ソースコードをダウンロードする 1 つ以上のデータソースを選択します。
選択を右クリックして、 に移動します。 次のオプションから選択できます:
なし: ソースコードをダウンロードしないでください。
システムスキーマを除外: システムスキーマを除くすべてのオブジェクトのソースコードをダウンロードします。
すべてのスキーマ: 利用可能なすべてのソースコードをダウンロードします。

オブジェクトのソースコードを編集する
データベースオブジェクトのソースコードを更新するには、それらの DDL 作成 スクリプトを直接編集し、エディターで変更を送信します。 IDE は、変更を含む移行スクリプトを生成し、それを確認するように求めてから、データベースで実行します。
オブジェクトを右クリックして、 を選択します。 または、 Ctrl+B を押します。
ソースコードに変更を加えます。
(オプション) データベースの変更 ツールウィンドウ () で、変更されたオブジェクトをダブルクリックして差分ビューアーを開き、変更を確認します。
サブミット ボタン (
) をクリックします。
データベースの変更 ツールウィンドウの サブミット ボタン (
) をクリックすると、 マイグレーション ダイアログが表示されます。 マイグレーション ダイアログには、オブジェクトの移行スクリプトが表示されます。
オブジェクトの移行 ダイアログで、移行スクリプトが正しいことを確認し、 OK をクリックします。
移行スクリプトは、データベース全体またはその一部を変更するコードです。 移行スクリプトを使用して、列の追加または削除、データベースのバージョンのアップグレード、列のプロパティの変更を行うことができます。
DataGrip は移行スクリプトを自動生成できますが、実行前に確認が必要です。
ソースコードのすべての変更を見る
メインメニューから を選択します。

変更されたバージョンと保存されたバージョンの違いを見る
オブジェクトのソースコードを編集すると、DataGrip は変更を追跡し、ガターでハイライトします。 例: ルーチンまたはトリガー関数にコメント行を追加します。 追加された行がハイライトされます。 ガターでハイライトされた行をクリックすると、 行の差異を表示 ボタンを含む小さなツールバーが表示されます。 行の差異を表示 ボタン (
) をクリックすると、追加したコードとソースコードのコードとの違いを確認できます。

データベースの変更 ツールウィンドウ () で、変更されたオブジェクトをダブルクリックして差分ビューアーを開き、変更を確認します。

古いキャッシュオブジェクト
DataGrip はデータベースのすべてのオブジェクトのソースコードをキャッシュし、高速なコーディング支援とナビゲーションを提供します。 開いたオブジェクトがサードパーティの場所から更新された場合は、キャッシュされたオブジェクトがデータベース内の同じオブジェクトのソースコードと異なるという通知が表示されます。

IDE でこの警告が表示された場合は、次のアクションから選択できます:
同期化: データベースから変更をフェッチし、キャッシュされたローカルオブジェクトを更新します。
チェックの無効化: この通知を無効にします。
また、オブジェクトソースコードのバージョンとデータベース内のバージョンとの間に競合が発生する可能性があります。 例: 他の人が同じソースコードを変更して サブミット (Ctrl+K) を押した場合。

データベース内のオブジェクトのソースコードを強制的に置き換える (強制リファクタリング) か、オブジェクトの状態を同期してから変更を続行する (リファクタリングを中断して同期) ことができます。
リファクタリングを中断して同期 を選択すると、DataGrip は送信操作を停止し、データベースから変更を取得します(同期化 Ctrl+F5 を押す場合と同様です)。 競合がまだ存在する場合は、次の通知が表示されます。

この通知では、次のオプションから選択できます:
ローカルの変更を元に戻す: すべての変更をロールバックし、データベースのバージョンに置き換えます。
ローカルの変更を維持: 変更を使用して、データベース内の変更を上書きします。
マージします: 差分ダイアログを表示して、2 つのバージョンのオブジェクトソースコードをマージします。

オブジェクトの状態の色
デフォルトでは、すべてのオブジェクトが黒で表示されます。 これは、オブジェクトのソースコードの現在の状態が、サーバー上の同じオブジェクトのソースコードと変わらないことを意味します。
オブジェクトのソースコードが変更されていても、サーバー上のオブジェクトソースコードと競合がなければ、オブジェクトは青色で表示されます。
ローカルオブジェクトとサーバー上の同じオブジェクトのソースコードに競合がある場合、オブジェクトは赤で表示されます。 このようなオブジェクトをエディターで開くと、競合に関する通知が表示されます。
例えば、次のスクリーンショットでは、 get_customer_balance 関数は変更されていますが、競合は含まれていません。 film_in_stock 関数は変更されており、サーバー上の同じ関数のソースと競合しています。他のオブジェクトは変更されていません。
