本教學將引導你如何使用 Visual Studio Code PostgreSQL 擴充功能搭配 GitHub Copilot 代理模式,將 Oracle 客戶端應用程式碼轉換成 適用於 PostgreSQL 的 Azure 資料庫,以自動化並驗證程式碼轉換。
內容涵蓋環境設定、匯入應用程式程式碼庫、執行轉換流程,以及審查產生的 PostgreSQL 相容程式碼。 在開始之前,請確保你已完成結構轉換專案,以獲得最佳效果。
以下是你在轉換過程中可以期待的內容:
- Environment setup:用適當的 AI 模型配置 GitHub Copilot 的代理執行模式
- 程式碼庫匯入:將你的應用程式程式碼組織在遷移專案結構中
- AI 處理:GitHub Copilot 利用資料庫上下文處理並轉換應用程式碼
- TODO 任務執行:自動化任務清單產生與系統性轉換
- 報告產生:包含結果與建議的完整轉換報告
- 檔案比較:內建差異工具用於檢視原始與轉換程式碼
先決條件
本節說明在開始轉換前,使用 Visual Studio Code 中 Oracle 至 適用於 PostgreSQL 的 Azure 資料庫 應用程式轉換功能的前提條件。
系統需求
| 需求 | Specification |
|---|---|
| Visual Studio Code 版本 | 1.95.2 或更高 |
| GitHub Copilot 訂閱 | Pro+、商業、企業 |
作業系統支援
| 平台 | Architecture |
|---|---|
| Windows 作業系統 | x64 與 ARM64 |
| Linux | x64 與 ARM64 |
| macOS | x64(Intel)與 ARM64(Apple Silicon) |
AI 模型需求
你需要在 GitHub Copilot 代理模式中設定以下 AI 模型之一:
| 型號 | 版本 |
|---|---|
| Claude | Sonnet 4.6、Opus 4.6 或更高版本 |
在開始應用程式轉換前,請將您的 GitHub Copilot 代理模式模型設定為 Claude Sonnet 4.6 或 Claude Opus 4.6 或更高版本,以獲得最佳的程式碼轉換效果。
PostgreSQL 版本支援
| 目標資料庫 | 版本 |
|---|---|
| 適用於 PostgreSQL 的 Azure 資料庫 Flexible Server(Azure 資料庫的 PostgreSQL 彈性伺服器) | PostgreSQL 版本 15 或更高 |
| Azure HorizonDB | PostgreSQL 版本 17 或更高版本 |
結構轉換建議
雖然不一定要事先完成資料庫架構轉換,但強烈建議先完成架構遷移。 如果你已經將 Oracle 架構轉換成 PostgreSQL,應用程式轉換過程會提供更精確的上下文與更高品質的程式碼轉換結果,透過以下方式:
- 編碼備註:結構轉換過程中產生的元資料產物(詳見下文「 什麼是編碼備註?」 )
- 資料庫上下文:直接存取已轉換的結構物件
- 資料型態映射:型別轉換的準確理解
其他先決條件
- 與 適用於 PostgreSQL 的 Azure 資料庫 實例的資料庫連接
- 存取 Visual Studio Code 擴充套件市集及 GitHub Copilot 服務
什麼是編碼筆記?
編碼備註是結構轉換階段自動產生的元資料產物。 它們擷取了 Oracle 到 PostgreSQL 架構轉換中的關鍵轉換細節與洞見,後續流程用以提升應用程式碼轉換效果。
編碼筆記可能包含以下資訊:
- 資料型別映射與結構變更
- 序列、識別及複合類型的轉換細節
- 對日期/時間或間隔實作的調整
- 參考具有參考完整性限制的資料表
- 複雜 Oracle 套件摘要,包括程序與函式簽章
- 額外 AI 生成提示以提升程式碼翻譯準確度
在應用程式轉換過程中,AI 模型會利用這些筆記作為情境訊號,產生更精確且語意對齊的 PostgreSQL 相容程式碼。
應用程式轉換流程
本節將完整介紹應用程式轉換工作流程:設定環境、匯入程式碼庫、執行轉換、檢視產生的報告,並比較檔案變更。
步驟一:建立你的環境
- 開啟安裝 PostgreSQL 擴充功能的 Visual Studio Code。
- 打開 GitHub Copilot 聊天介面。
- 選擇 Claude Sonnet 4.6 或 Claude Opus 4.6 作為模型。
為了達到最佳的應用轉換結果,必須使用 Claude Sonnet 4.6 或 Claude Opus 4.6。 較低階的模型可能產生較不精確的轉換。
步驟二:開啟您的遷移專案
打開包含你結構轉換專案的工作區。
導航到遷移專案資料夾結構:
.github/postgres-migration/project_name/確認專案結構包含必要的資料夾和結構轉換檔案。
步驟 3:將你的程式碼庫複製到 遷移專案中
在你的專案中找到資料夾:
application_code.github/postgres-migration/project_name/application_code/把你想遷移的程式碼資料夾複製到專案資料夾裡的
application_code資料夾裡。邏輯性地組織檔案,以促進系統性的轉換。
將原始申請碼放在另一個地方作為備份。 只複製你想轉換成遷移專案結構的檔案。
步驟四:開始客戶端程式碼遷移
- 在 PostgreSQL 擴充功能中的遷移面板中,選擇 「遷移應用程式 」以啟動應用程式轉換精靈。
- 在載入的表單中,選擇你複製到工作區根目錄的資料夾。
- 選擇包含您應用上下文的資料庫:
- 您用來部署已轉換 DDL 的 PostgreSQL 資料庫,或
- 已經存在你的應用程式結構的 PostgreSQL 資料庫
- 選擇 轉換應用程式。
此動作啟動以下程序:
- 呼叫自訂合成提示詞與代理模式工具
- 產生一份待辦事項清單,代理模式會繼續執行
- 連接並讀取你的資料庫以增強上下文
- 系統性地轉換應用程式碼檔案
步驟五:監控轉換進度
- 請觀察 GitHub Copilot 在代理模式下的介面如何處理檔案。
- 客服會系統性地處理產生的待辦事項清單。
- 檢查代理程式中任何可能需要輸入的提示或問題。
- 請讓轉換過程完全完成後再審查結果。
步驟 6:使用 GitHub Copilot 應用程式現代化擴充套件(可選)進行強化 Java 轉換
如果使用Java程式碼:你可以在開始轉換前安裝 GitHub Copilot 應用程式現代化擴充套件來強化轉換流程。
自動測試編譯
兩個 VS Code 擴充功能彼此溝通,實現無縫整合。 在轉換 Java 程式碼時,應用程式現代化擴充功能會自動對已轉換的程式碼進行測試編譯,以便在早期發現語法錯誤或編譯問題。
自動單元測試生成
根據你轉換後的程式碼庫,應用程式現代化擴充會自動產生單元測試,幫助驗證轉換後的應用程式是否正確運作。 此整合利用應用程式現代化擴充的功能來:
- 分析你轉換後的 Java 類別和方法
- 為關鍵程式碼路徑產生適當的測試案例
- 建立能與 PostgreSQL 資料庫連線相容的測試夾具
安裝 GitHub Copilot 應用程式現代化擴充功能是 Java 遷移專案的強烈建議,因為它大幅加速驗證,並透過自動化編譯檢查與測試產生提升轉換品質。
步驟7:審查程式碼轉換報告
欲獲得完整的報告指引:請參閱 Oracle to 適用於 PostgreSQL 的 Azure 資料庫 應用程式轉換生成報告(預覽),了解轉換結果、理解檔案狀態及規劃驗證策略的詳細資訊。
步驟 8:利用檔案差異功能比較程式碼變更
- 右鍵點擊已轉換的檔案(例如
.java檔案),並選擇 「比較應用程式遷移檔案對」。 - 這會開啟原始檔案與轉換後檔案的並排視圖。
- 利用此資料在測試前驗證關鍵轉換。
有效檔案比較策略:請參閱 Oracle 轉適用於 PostgreSQL 的 Azure 資料庫應用程式轉換產生的報告(預覽),了解如何優先審查哪些檔案,以及如何聚焦驗證工作。
步驟 9:驗證轉換後的應用程式碼
基本驗證步驟:
- 用轉換後的 PostgreSQL 架構建立一個非生產環境的測試環境
- 使用新的 PostgreSQL 連接字串來測試資料庫連接性
- 執行關鍵業務流程 以驗證應用程式行為
- 驗證 SQL 查詢結果 與 Oracle 預期結果的關聯
- 轉換報告中標示的地址區域
Important
AI 系統偶爾會犯錯。 為防止功能回歸、安全問題或資料存取問題,部署至生產環境前,應獨立驗證所有轉換後的應用程式程式碼。
系統性驗證方法:利用 最佳實務中將 Oracle 應用碼轉換為 適用於 PostgreSQL 的 Azure 資料庫(預覽版)中的驗證框架,根據 Oracle 整合複雜度與轉換報告結果優先進行測試。
轉換後的步驟
完成應用程式轉換後:
- 執行單元測試:針對已轉換的程式碼執行應用程式的測試套件。
- 整合測試:用你的 PostgreSQL 資料庫測試應用程式。
- 效能測試:驗證查詢效能是否符合需求。
- 程式碼審查:讓團隊成員審查轉換後的程式碼以確認準確性。
- 文件更新:更新任何提及 Oracle 專屬功能的文件。
綜合驗證策略:詳見 將 Oracle 應用程式碼轉換為 適用於 PostgreSQL 的 Azure 資料庫(預覽),了解根據轉換複雜度的詳細驗證框架、測試優先順序及團隊協調方法。
欲了解更多關於 Visual Studio Code 擴充功能的資訊,請造訪 Visual Studio Code 的 PostgreSQL 擴充套件