データベースオブジェクトのソースコードを変更する
データベースツールおよび SQL プラグインを有効化
この機能は、IntelliJ IDEA にデフォルトでバンドルされ有効になっている データベースツールおよび SQL プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インストール済みタブを開き、 データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
IntelliJ IDEA は、データベースにソースコードを格納するオブジェクトに加えた変更を追跡します。 これらのオブジェクトは、トリガー、プロシージャ、関数、ビュー、その他のオブジェクトである可能性があります。 エディターでこれらのオブジェクトに加えたすべての変更は、オブジェクトのソースコードのローカルバージョンとして保存されます。
ソースコードの更新
IntelliJ IDEA は、イントロスペクションプロセス中にデータベースに関する情報を取得します。 この情報は、 データベース ツールウィンドウでのオブジェクトの表示、DDL の表示、完了時のオブジェクトの提案、コーディング支援のためのその他の機能で使用されます。
データベースオブジェクトの DDL を編集して変更を送信することにより、データベースオブジェクトのソースコードを直接更新できます。 IDE は移行スクリプトを生成し、データベースで実行します。
データベースの変更 ツールウィンドウには、すべての変更の概要が表示されます。
データソースのソースコードを読み込む
IntelliJ IDEA は、イントロスペクション中にデータソースのソースコードを取得します。 このプロセスは、データソースのプロパティで管理できます。
次のいずれかの方法でデータソースのプロパティを開きます。
データベース ツールウィンドウのツールバーで、
データソース をクリックします。
Shift+Enter を押します。

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

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

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

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

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

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

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

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

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