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