Visual Studio Code 的 PostgreSQL 擴充功能提供端到端的工作流程,用於將 Oracle 資料庫遷移至 PostgreSQL。 導覽向導會引導你如何連接 Oracle 原始碼、選擇結構、設定 Microsoft Foundry 模型以支援 AI 輔助的 DDL 轉換,以及選擇 PostgreSQL 臨時資料庫進行驗證。 專案建立後,儀表板會在單一視圖中追蹤擷取、轉換、匯出與審查。
Important
Oracle 到 PostgreSQL 的遷移工作流程僅支援 Visual Studio Code。
架構與應用程式轉換如何結合
該擴充功能將 Oracle 工作負載分兩次轉換。 架構轉換會先執行,並產生 PostgreSQL 資料定義語言(DDL)用於你的資料庫物件。 應用程式轉換會在之後執行,並更新呼叫這些物件的程式碼。
模式轉換
Schema Conversion 會讀取你選擇的 Oracle 資料字典,將擷取的物件分組成依依賴順序的區塊,並透過 Microsoft Foundry 部署將每個區塊轉換。 轉換後的物件會在寫入前先與 scratch 資料庫進行編譯,因此你收到的 DDL 是經過驗證的,而非最佳猜測。 連續產生:
- 物件層級的 PostgreSQL
.sql檔案,依 Oracle 架構與物件類型組織。 - 一份記錄哪些物件轉換、哪些被跳過,以及整體成功率的轉換報告。
- 檢視需要人工判斷的物件任務,例如備用 DDL 或 Oracle 與 PostgreSQL 行為差異。
- 描述 Oracle 模式與 PostgreSQL 的程式說明。
應用程式轉換
應用程式轉換針對圍繞資料庫的 Oracle 專用程式碼:SQL 腳本、儲存程序呼叫、載入器控制檔案、shell 腳本及 Java 檔案。 它會將結構轉換的程式碼筆記作為輸入,因此轉換後的應用程式代碼會與結構轉換實際產生的物件名稱、類型和呼叫慣例相符。
你可以在這個擴充功能中轉換與資料庫相關的應用程式程式碼,或交給 GitHub 的 Copilot 應用程式 現代化擴充功能,進行完整的現代化流程。
排序兩次通過
先執行結構轉換。 應用程式轉換依賴於結構轉換產生的程式碼備註和轉換後的物件名稱,因此在架構尚未確定前轉換應用程式程式碼,會產生針對可能仍會變動物件的程式碼。 如果你在更改結構範圍或修正原始物件後重新執行結構轉換,請再次檢視應用程式程式碼與更新的程式碼筆記。
先決條件
在開始之前,請確保您擁有:
- Visual Studio Code已安裝。
- 安裝了 PostgreSQL 擴充功能 。
- 存取具有結構擷取權限的 Oracle 原始碼資料庫。
- 一個 適用於 PostgreSQL 的 Azure 資料庫 的彈性伺服器,作為臨時驗證資料庫使用。 Schema Conversion 不支援 Azure HorizonDB 作為臨時資料庫。
- 具有已部署
gpt-5.2模型的 Microsoft Foundry 資源。 你需要端點網址,以及 API 金鑰或有權限的 Microsoft Entra ID 帳號。
確認遷移功能是否啟用
該 pgsql.enableMigrations 設定控制 遷移檢視及 所有遷移指令。 此設定預設為啟用狀態。
如果側邊欄沒有遷移檢視,請開啟 Visual Studio Code 設定(Windows/Linux 為 Ctrl,macOS+為Cmd+),確認為 。pgsql.enableMigrationstrue
建立移轉專案
遷移專案是一個四步驟精靈,會在建立專案工作空間前收集你的來源、目標和 AI 設定。
步驟 1:專案設定
在側邊欄開啟「 遷徙 」檢視。
開始新專案的方式如下:
- 如果工作區還沒有遷移project,請在檢視中選擇 + 建立遷移Project。
- 選擇 + 檢視工具列中的按鈕。
- 在檔案總管中右鍵點擊一個工作區資料夾,選擇「開啟遷移 Project」。
新 Oracle to 適用於 PostgreSQL 的 Azure 資料庫 遷移專案頁面已開啟,列出你需要的事項:
- 來源資料庫的連線細節
- 要轉換的模式名稱
- Microsoft Foundry 資源的端點網址與金鑰
- Connection name for a existing 適用於 PostgreSQL 的 Azure 資料庫 instance
請在 Project 名稱欄位輸入名稱。
選擇 下一頁:Oracle Connection。
步驟 2:連接 Oracle
Connect to Oracle 頁面會收集你的 Oracle 原始資料庫憑證,並讓你能載入結構。
請填寫 Oracle 連線欄位:
Field Description Oracle 主機名稱 Oracle 資料庫伺服器的主機名稱或 IP 位址。 Oracle 連接埠 監聽器埠(預設: 1521)。Oracle SID 或服務名稱 Oracle SID 或資料庫實例的服務名稱。 Oracle 用戶名稱 資料庫使用者擁有結構物件的讀取權限。 Oracle 密碼 Oracle 使用者的密碼。 選擇 載入結構 以連接並取得可用結構清單。
在 Schemas 下拉選單中,選擇一個或多個結構要遷移。
選擇 下一步:PostgreSQL 連線。
步驟 3:選擇適用於 PostgreSQL 的 Azure 資料庫草擬資料庫
選擇適用於 PostgreSQL 的 Azure 資料庫草擬資料庫頁面可讓您選取 AI 模型用於確認已轉換 DDL 檔案的 PostgreSQL 執行個體。
Note
使用專門的暫存資料庫來驗證。 擴充套件在轉換過程中可能會對該資料庫執行已轉換的 DDL。
- 在 PostgreSQL 連線 下拉選單中,選擇一個現有的連線設定檔。 如果你需要的連線沒有列出,請選擇 「重新整理設定檔 」來重新載入可用的設定檔,或先在 「連線」和「身份」 檢視中建立一個新的連線。
- 在 PostgreSQL 資料庫 下拉選單中,選擇目標資料庫。 如果清單是空的, 請選擇載入資料庫 。
- 選擇資料庫後,擴充功能會自動驗證已安裝推薦的 PostgreSQL 擴充功能。 您也可以選擇「驗證擴充功能」,手動執行檢查。 如果缺少任何擴充功能,頁面會列出這些擴充功能,並提供將其加入允許清單及安裝的指引。
- 選擇下一頁:Microsoft Foundry 模型配置。
步驟 4:設定 Microsoft Foundry 模型
「選擇 Microsoft Foundry 模型」頁面配置了 Microsoft Foundry 部署,負責架構與程式碼轉換。
完成語言模型欄位:
Field Description 模型名稱 gpt-5.2。Microsoft Foundry 端點 Microsoft Foundry 資源端點 URL(例如, https://<resource>.openai.azure.com/)。驗證方法 選擇 API Key 或 Microsoft Entra ID。 Microsoft Foundry API 金鑰 Microsoft Foundry 資源的 API 金鑰(當 Authentication Method 為 API Key 時會顯示)。 Azure Account 擁有資源存取權的 Microsoft 帳戶(當驗證方式為 Microsoft Entra ID 時會顯示)。 承租人 帳號的 Microsoft Entra 租戶(當認證方式為 Microsoft Entra ID 時會顯示)。 部署名稱 在你的 Microsoft Foundry 資源中部署的模型名稱。 選擇測試 Microsoft Foundry 連線以驗證連線性。
選擇 建立移轉專案。
Tip
Microsoft Foundry 建議 500,000 TPM (每分鐘詞元數) 以達到最佳移轉效能。
執行結構描述移轉
專案建立後,Oracle 遷移 儀表板會開啟。 儀表板會顯示結構描述移轉和結構描述審查卡片,還有一個摘要專案設定的設定摺疊面板。
擷取並轉換結構
架構遷移卡(步驟 1)以連續管線執行擷取、轉換與匯出。
在 結構遷移 卡上,選擇 遷移。
按鈕標籤會隨著流程推進而更新:
現況 按鈕標籤 正在擷取 擷取中... 提取完成,轉換待處理 履歷遷移 轉換執行中 正在轉換… 所有階段皆已完成 遷移完成 監控擴充卡的進度:
- 擷取 顯示已擷取物件的數量(例如「擷取 42 個物件中的 15」)以及目前的結構與正在處理的物件。
- 轉換 顯示已轉換區塊的數量(例如「3 個區塊已轉換」)以及目前正在處理的區塊。
匯出完成後,選擇 「檢視遷移報告 」以開啟產生的遷移報告。
檢視遷移任務
架構審查卡(步驟2)顯示轉換後需要人工處理的項目。 檢視區頂端有 「群組 / 任務 切換器」,讓你選擇如何完成清單。
群組視圖
群組檢視會依類別將複習任務組織成可摺疊的手風琴式群組。 當你想一起處理相關議題時,請使用此視角。
在 Schema Review 卡片上,選擇 Review 以展開 review 頁面,然後選擇 Grouped。
使用 待處理 與 已解決 分頁,在仍需處理的任務與已核准的任務間切換。
展開一個群組以查看其元資料(結構、物件類型、重要性)以及裡面的個別任務卡。
利用群組層級的行動來批量處理任務:
Action Description 全部執行 在 Copilot 代理模式下開啟群組中所有待處理任務,供 AI 協助審查。 全部解決 將群組中的所有任務標記為已解決。 確認對話框會顯示群組名稱和任務數量,然後再繼續。 全部重置 將群組中所有已解決的任務還原為待處理狀態。 可於 已解決 標籤取得。 在任務中檢視 切換到篩選到此群組的扁平工作視圖。 若要在群組內執行單一任務,請選擇「執行任務」以在 Copilot 代理模式下開啟該任務,或選擇「解決」以標記完成。 在已解決的任務上選擇 重設,將其恢復為待處理狀態。
Note
當一個群組包含超過 800 個任務時,「全部解決」和「全部重置」會被停用。
任務視圖
任務檢視會以平面表格顯示所有審查任務。 當你想對所有任務進行排序、篩選或搜尋時,不論群組,都可以使用此視圖。
- 在切換器中選擇 任務 。
- 使用篩選器下拉選單(狀態、 關鍵性、 物件類型、 架構)來縮小任務清單範圍。
- 選擇「執行任務」待處理項目,即可在 Copilot 代理模式下開啟,進行 AI 輔助檢視與修正。
- 修正項目後 ,選擇解決 以標記完成。
Tip
在儀表板中選擇 「檢視日誌」 以檢查解壓與轉換日誌檔案以進行故障排除。
遷移應用程式代碼
架構遷移後,將 Oracle 專用的應用程式程式碼(SQL 腳本、儲存程序、載入控制檔、shell 腳本或 Java 檔案)轉換為相容 PostgreSQL 的對應程式。 應用程式遷移是預覽功能。
選擇移轉方法
該擴充功能提供兩條應用程式碼遷移路徑:
- 完整的應用程式現代化:如果你安裝了 GitHub Copilot 應用程式 現代化擴充功能,請選擇「使用 app 現代化遷移」,以繼續從結構轉換時的程式碼筆記遷移。 選擇 「檢視編碼筆記 」以在繼續前查看已產生的指引。
- 僅資料庫選項:若要在此擴充功能中轉換僅與資料庫相關的應用程式程式碼,請選擇 使用 PostgreSQL 擴充功能遷移。
在擴充功能中轉換應用程式代碼
- 在 應用程式遷移 卡上,選擇 遷移資料 (或若偵測到應用程式現代化擴充功能則選擇 方法 )。
- 在 「轉換應用程式 」頁面,選擇「 選擇 Oracle 應用程式以轉換 」,並選擇包含 Oracle 應用程式程式碼的資料夾。
- 選擇 PostgreSQL 連線 及 PostgreSQL 資料庫 以取得轉換上下文。
- 如果資料庫清單為空, 請選擇載入資料庫 。
- 選擇 轉換應用程式 以開始轉換。
使用 Copilot 工具進行應用程式遷移
該擴充功能註冊了兩個 Copilot 語言模型工具以協助遷移:
Oracle 用戶端程式碼應用程式轉換器 (
pgsql_migration_oracle_appOracle):利用提示範本及結構遷移分析中的程式碼指引,將 Oracle 用戶端應用程式碼轉換為 PostgreSQL 等效碼。 接受以下參數:- 應用程式代碼庫資料夾 (必填):程式碼位置。
- 編碼備註位置路徑 (可選):從結構遷移到編碼備註的路徑。
- Postgres 資料庫名稱 (可選):用於轉換上下文的 PostgreSQL 資料庫名稱。
- Postgres 資料庫連線 (可選):PostgreSQL 資料庫的連線名稱。
顯示 Oracle 到 Postgres 遷移報告 (
pgsql_migration_show_report):顯示結構轉換所產生的遷移報告。 需要一個 路徑到報告檔案 參數。
欲了解更多使用 Copilot 工具的資訊,請參見 Copilot 整合。
比較轉換後的檔案
轉換後,使用內建的 diff 指令並排檢查變更。
- 在檔案總管中,以滑鼠右鍵按一下遷移專案中
oracle或postgres資料夾下的已轉換 SQL 檔案,然後選取 比較 DDL 遷移檔案配對。 - 對於已轉換的應用程式碼檔案(
.sql, ,.ctl.sh.load, , 或.java),請右鍵點擊該檔案並選擇「比較應用程式遷移檔案對」。
並排差異檢視會顯示原始 Oracle 原始碼與轉換後的 PostgreSQL 輸出,讓你能辨識需要手動調整的瑕疵。
Note
DDL 檔案必須依照 compare 指令的結構 folder/oracle|postgres/SCHEMA_NAME/DDL-TYPE/filename.sql 來定位匹配的檔案對。
管理遷移專案
請使用側邊欄的 遷移 檢視來管理您的專案:
| Action | Description |
|---|---|
| 開放遷移專案 | 在儀表板中開啟一個現有的遷移專案。 |
| 在檔案總管中顯示 | 在檔案總管檢視中顯示專案資料夾。 |
| 刪除 | 移除一個遷移專案。 刪除前會提示確認。 |
| 重新整理 | 在目前工作區重新載入遷移專案清單。 |
相關內容
- 什麼是 Oracle 到 適用於 PostgreSQL 的 Azure 資料庫 的靈活伺服器架構轉換?
- Tutorial: Oracle to 適用於 PostgreSQL 的 Azure 資料庫 flexible server schema conversion
- Oracle to 適用於 PostgreSQL 的 Azure 資料庫 flexible server schema conversion 的最佳實踐
- Review tasks and output folders for Oracle to 適用於 PostgreSQL 的 Azure 資料庫 flexible server schema conversion
- Oracle to 適用於 PostgreSQL 的 Azure 資料庫 flexible server schema conversion limitations
- Copilot 整合
- 連結與身份認同
- 設定參考
- Copilot 工具參考資料