このチュートリアルでは、Visual Studio Code PostgreSQL 拡張機能と Microsoft Foundry を使用してスキーマ変換を自動化および検証することで、Oracle データベース スキーマをAzure Database for PostgreSQLに変換する方法について説明します。
Oracle のソースと Azure Database for PostgreSQL のターゲットへの接続、Microsoft Foundry の構成、移行ウィザードの実行、生成された PostgreSQL アーティファクトの確認について説明します。 開始する前に、サーバーと Microsoft Foundry 展開の両方に対するネットワーク アクセスと資格情報があることを確認します。
変換中に期待できることは次のとおりです。
- スキーマ検出: このツールは、Oracle スキーマ オブジェクトを分析します。
- AI 処理: Microsoft Foundry は互換性のあるオブジェクトを処理し、変換します。
- 検証: 変換されたオブジェクトはスクラッチ データベースで検証されます。
- タスクの確認: 手動による注意が必要なオブジェクトにフラグが設定されます。
- 出力生成: 正常に変換されたオブジェクトは PostgreSQL ファイルとして保存されます。
Prerequisites
このセクションでは、変換を開始する前に、Visual Studio Code で Oracle から Azure Database for PostgreSQL スキーマ変換機能を使用するための前提条件について説明します。
システム要件
| カテゴリ | 詳細情報 |
|---|---|
| Visual Studio Code のバージョン | 1.95.2 以降 |
| GitHub Copilot サブスクリプション | Pro+、Business、Enterprise |
オペレーティング システムのサポート
| オペレーティング システム | サポートの詳細 |
|---|---|
| Windows | x64 アーキテクチャのみ |
| Linux | x64 アーキテクチャ |
| macOS | macOS 13 以降 |
対象となる Azure Database for PostgreSQL の要件
| コンポーネント | バージョン要求 |
|---|---|
| Azure Database for PostgreSQL | PostgreSQL バージョン 15 以降 |
| スクラッチ データベース | Azure Database for PostgreSQL - フレキシブル サーバー |
AI モデルの要件
次のいずれかの AI コンポーネントが構成されている必要があります。
| AI コンポーネント | モデルのバージョン番号 |
|---|---|
| Microsoft Foundry | GPT-5.2 の展開 |
Microsoft Foundry のデプロイ構成
Microsoft Foundry で、gpt-5.2 モデルを使用するデプロイを作成します。 デプロイ名は、デプロイの作成時に選択した名前です。モデル名と一致する必要はありません。
エンドポイントは、Microsoft Foundry リソース URL です。 Microsoft Foundry リソースでは、複数の同等なホスト名が使用でき、以下のいずれの形式も有効です。
https://{your-resource}.services.ai.azure.comhttps://{your-resource}.openai.azure.comhttps://{your-resource}.cognitiveservices.azure.com
{your-resource} を、Microsoft Foundry リソース名 (例: oracletopg) に置き換えます。 推論ルートを直接呼び出す必要がある場合、現在のプレビュー パスは /openai/responses?api-version=2025-04-01-preview。
エンドポイント形式と推論ルートの詳細については、「Endpoints for Microsoft Foundry Models」を参照してください。
Tip
Microsoft Foundry トラフィックをAzure API Management経由して一元的なガバナンス、調整、監視を行うには、Foundry リソースの前に AI ゲートウェイを構成し、ゲートウェイ URL をエンドポイントとして使用します。 詳細については、「 Foundry リソースで AI ゲートウェイを構成する」を参照してください。
必要なデータベース特権
スキーマ変換を実行する前に、使用するアカウントに、ソース Oracle データベースとフレキシブル サーバー Azure Database for PostgreSQLスクラッチの両方に最低限必要な特権があることを確認します。 Oracle アカウントでは、ツールでスキーマとコードを分析できるように、データ ビューとディクショナリ ビューへの読み取りアクセス権が必要です。 Azure Database for PostgreSQLスクラッチ アカウントは、検証のためにスキーマ、テーブル、およびその他のオブジェクトを作成できる必要があります。 可能な場合は、専用のサービス アカウントを使用します。 最小限の特権の原則に従います。 変換を開始する前に、DBA と連携して一時的な昇格された権限を付与し、接続とアクセスを検証します。
Oracle のソース特権
ソース Oracle データベースには、次の最小特権が必要です。
| 権限 | Purpose |
|---|---|
| CONNECT | 基本的なデータベース接続 |
| SELECT_CATALOG_ROLE | データ ディクショナリ ビューへのアクセス |
| 任意のディクショナリを選択する | システム メタデータとディクショナリ オブジェクトの読み取り |
セレクト SYS.ARGUMENT$ |
プロシージャと関数の引数情報へのアクセス |
スクラッチ データベース権限
Azure Database for PostgreSQL フレキシブル サーバー (スクラッチ データベース) には、次の特権が必要です。
| 権限 | Purpose |
|---|---|
| スキーマを作成する | 検証スキーマを作成する |
| データベースに作成 | 検証用のデータベース オブジェクトを作成する |
| GRANT CONNECT ON DATABASEデータベースへの接続権限の付与 | 検証プロセスへの接続許可 |
ネットワークの要件
- アウトバウンド接続: Microsoft Foundry エンドポイント。
- データベース接続性: ソースは Oracle、ターゲットは Azure Database for PostgreSQL フレキシブル サーバーの両方。
- HTTPS 経由のアクセス: Visual Studio Code Extensions Marketplace および GitHub Copilot サービス。
- GitHub リポジトリ アクセス: https://github.com/microsoft/pgsql-tools/。
Oracle インスタント クライアント(リッチクライアント モードの場合)
スキーマ変換ツールは、シン クライアント モードを使用して Oracle に既定で接続します。追加のソフトウェアは必要ありません。 環境でシック クライアント モードが必要な場合は、Visual Studio Code実行されているコンピューターに Oracle インスタント クライアントをインストールします。 このツールは、 sqlnet.ora と tnsnames.ora 構成を読み取り、設定で必要になったときに自動的にシック モードに切り替わります。
ソース環境の Oracle ネットワーク構成ファイルを調べて、シック クライアント モードが必要かどうかを判断できます。
sqlnet.ora ファイル (通常は $ORACLE_HOME/network/admin/ にあります) で、次のパラメーターを探します。
| パラメーター | 厚みモードが必要であることを示します |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
ネイティブ ネットワーク暗号化の REQUIRED または REQUESTED に設定する |
SQLNET.ENCRYPTION_CLIENT |
ネイティブ ネットワーク暗号化の REQUIRED または REQUESTED に設定する |
Microsoft Foundry 認証
Microsoft Foundry に対して次のいずれかの認証方法を構成します。
| 認証方法 | 必要条件 |
|---|---|
| API キー | Microsoft Foundry のエンドポイント URL と API キー。 |
| Microsoft Entra ID | Azureアカウント拡張機能がサインインし、Foundry User ロール (旧称 Azure AI User) がMicrosoft Foundry リソースに割り当てられます。 |
移行プロセス
このセクションでは、完全な移行ワークフローについて説明します。 PostgreSQL 拡張機能をインストールし、Oracle ソースおよび Azure Database for PostgreSQL ターゲットへの接続を作成してテストし、移行プロジェクトを開いて初期化し、スキーマ変換用に Microsoft Foundry を構成し、移行ウィザードを実行してスキーマを検出および変換し、スクラッチ データベースで変換されたオブジェクトを検証し、生成された PostgreSQL アーティファクトをターゲットに適用する前に、フラグ付き項目を確認または修正します。
手順 1: PostgreSQL Visual Studio Code 拡張機能をインストールする
Visual Studio Codeを開く。
[拡張機能] ビュー (
Ctrl+Shift+X) に移動します。PostgreSQL を検索し、Microsoft によって発行された PostgreSQL 拡張機能をインストールします。
手順 2: Azure Database for PostgreSQL接続を作成する
PostgreSQL 拡張機能パネルで、Azure Database for PostgreSQL フレキシブル サーバー インスタンスへの接続を作成します。
接続の詳細 (ホスト、データベース、ユーザー名、パスワード) を入力します。
接続をテストして保存します。
手順 3: 新しいワークスペースを開く
手順 4: 移行プロジェクトを初期化する
手順 5: プロジェクト設定を構成する
手順 6: Oracle 接続を構成する
Oracle 接続の詳細を入力します。
- ホストまたはサーバー名。
- ポート番号。
- データベースまたはサービス名。
- ユーザー名とパスワード。
このツールは、
sqlnet.oraとtnsnames.oraの設定からシン クライアント モードまたはシック クライアント モードを自動的に選択します。UI は手動セレクターを公開しません。 軽量モードが既定で使用されます。sqlnet.oraにシック モードが必要な場合は、続行する前に、Oracle インスタント クライアントがインストールされていること、およびその場所がPATH環境変数にあることを確認してください。 詳細については、「 Oracle インスタント クライアント」を参照してください。[ スキーマの読み込み] を選択します。 このツールは Oracle 接続をテストし、成功した場合は、Oracle で使用可能なすべてのユーザー定義スキーマを一覧表示します。
PostgreSQL に変換する 1 つ以上のスキーマを選択します。
[次へ] を選択して続行します。
手順 7: Azure Database for PostgreSQL の一時データベースを構成する
PostgreSQL 拡張機能で定義したAzure Database for PostgreSQL接続を選択します。
ドロップダウン リストから ターゲット データベース を選択します。
[次へ] を選択して続行します。
手順 8: Microsoft Foundry 言語モデルを構成する
Microsoft Foundry の詳細を入力します。
- エンドポイント URL。
- デプロイ名 (Microsoft Foundry のデプロイに割り当てた名前。基になるモデルは
gpt-5.2である必要があります)。
認証方法を選択します。
- API キー: Microsoft Foundry デプロイの API キーを入力します。
- Microsoft Entra ID: Azure アカウント拡張機能を使用してサインインします。 このツールは認証トークンを自動的に取得します。 サインイン ID に、Microsoft Foundry リソースに対する Foundry User ロール (旧称 Azure AI User) があることを確認します。 詳細については、Microsoft Foundry の ロールベースのアクセス制御 を参照してください。
[ テスト接続] を選択して構成を確認します。
接続が成功したら、Create Migration Project を選択します。
手順 9: スキーマ変換を実行する
手順 10: スキーマ変換レポートを確認する
- スキーマ変換が完了すると、ツールによって スキーマ変換レポートが生成されます。
- 正常に変換されたオブジェクトとスキップされたオブジェクトを確認します。
- レポートには、コンバージョンの成功率が表示されます。
手順 11: 変換タスクを確認して絞り込む
- スキーマ変換が完了すると、ツールは注意が必要なオブジェクトの レビュー タスク を作成します。
- GitHub Copilot エージェント モードを使用してタスクを解決するか、スキーマを PostgreSQL に手動で変換します。
- 前のスキーマ変換ステートメントと新しく変換されたスキーマ変換ステートメントを比較します。
- タスクの優先順位、生成された SQL ファイル、出力フォルダーの詳細については、「Oracle のタスクと出力フォルダーを確認して、柔軟なサーバー スキーマ変換をAzure Database for PostgreSQLする」を参照してください。
手順 12: デプロイ前に変換されたオブジェクトを検証する
- 非運用環境で変換されたすべてのオブジェクトを個別に検証します。
- 依存関係、制約、および代表的なワークロードが想定どおりに動作することを確認します。
- すべてのレビュー タスクの解決策を確認し、変更後に再テストします。
Important
顧客の検証責任: スキーマ変換に使用されるのと同じ AI エンジンが、検証とレビューにも役立ちます。 AI システムは、独自のミスを確認することがあります。 データ損失、機能回帰、またはセキュリティの問題を防ぐために、運用環境にデプロイする前に、変換されたすべてのオブジェクトとレビュー タスクの解決を個別に検証します。 コントロールの一部として、有害な出力や望ましくない出力を減らすために、Microsoft Foundry コンテンツ フィルターを有効にすることを検討してください。 ガイダンスについては、「Microsoft Foundry Models のContent フィルター処理を参照してください。
Visual Studio Code拡張機能の詳細については、Visual Studio Codeおよび Cursor の PostgreSQL 拡張機能を参照してください。