共用方式為


透過使用 GitHub Copilot 應用程式現代化,從 Oracle 遷移到 PostgreSQL

本文提供指引,指導你如何利用 GitHub Copilot 應用程式現代化,將 Java 專案從 Oracle 遷移到 PostgreSQL 資料庫。

針對與資料庫遷移情境相關的應用程式程式碼變更,GitHub Copilot 應用程式現代化提供預先定義的任務清單,以支援同質遷移。 這些情境包括從 PostgreSQL、Microsoft SQL Server、MySQL、Cassandra、MongoDB 及其他資料庫遷移到相應的 Azure 資料庫服務。 此工具也支援從 Oracle 到 Azure PostgreSQL 的異構遷移。 這些任務主要是幫助你準備程式碼庫,以便與 Azure 資料庫進行管理身份驗證。

在資料庫遷移過程中,另一個重要考量是 SQL 方言轉換,這涵蓋了應用程式程式碼中靜態與動態 SQL 的轉換。 對於同質遷移,SQL 轉換通常不必要,因為資料庫類型保持不變。 然而,在異質遷移中——例如從 Oracle 轉換到 PostgreSQL——SQL 轉換過程可能相當複雜且需要大量努力。

Oracle 遷移至 PostgreSQL 的新進展

我們現在與 Azure PostgreSQL 團隊合作,為 Oracle 到 PostgreSQL 遷移情境帶來兩項重大進展:

  • AI 驅動的資料庫遷移工具:由 AI 驅動的 PostgreSQL 工具能有效管理從 Oracle 遷移到 PostgreSQL 的資料庫流程,從而減少人工介入並降低錯誤風險。

  • 應用程式程式碼中的智慧 SQL 轉換:為了支援必要的應用程式碼變更,我們在 GitHub Copilot 應用程式現代化中提供內建 SQL 轉換功能,並無縫整合為統一工作流程的一部分。

利用 AI 驅動的資料庫遷移工具進行資料庫遷移

要了解如何安裝並使用由 AI 驅動的資料庫遷移工具——PostgreSQL Visual Studio Code 資料庫遷移擴充功能——請參閱「 什麼是 PostgreSQL Visual Studio Code 預覽?」

GitHub Copilot 應用程式現代化現在提供了專門的遷移任務,旨在處理資料庫客戶端更新(使用管理身份驗證)以及 Oracle 轉 PostgreSQL 遷移場景所需的 SQL 轉換。

一大特色是能夠善用程式碼筆記。 編碼筆記詳細說明資料庫遷移的結構變更,您可以選擇性地用來產生更精確且語意對齊的 PostgreSQL 程式碼。 編碼備註是利用 PostgreSQL Visual Studio Code 擴充功能,在資料庫架構轉換階段自動產生的元資料產物。 編碼筆記可包含以下資訊:

  • 資料型別映射與結構變更。
  • 序列、身份及複合類型的轉換細節。
  • 調整日期/時間或間隔實作。
  • 參考具有參照完整性約束的資料表。
  • 複雜 Oracle 套件的摘要,包括程序與函式簽章。
  • 額外 AI 生成提示,提升程式碼翻譯準確度。

使用 Oracle 至 PostgreSQL 的遷移任務

請使用以下步驟執行 GitHub Copilot 應用程式現代化中的 Oracle 遷移至 PostgreSQL 任務:

  1. 要執行應用程式評估,請依照 快速入門說明:使用 GitHub Copilot 應用程式現代化評估並遷移 Java 專案

  2. 評估完成後,請檢視所產生的報告。 如果您的應用程式使用 Oracle,報告會顯示與 Oracle 相關的資料庫 遷移(Oracle) 問題,預設解決方案是從 Oracle DB 遷移到 PostgreSQL

    Visual Studio Code 的截圖顯示 GitHub Copilot 應用程式現代化評估報告。

  3. 另外,你也可以把程式碼筆記正確地放在你的應用程式程式碼資料夾裡。 檢查資料夾裡是否有coding_notes.md.github\postgre-migrations\*\results\application_guidance\ 如果沒有,就去找負責 Oracle 遷移到 PostgreSQL 的資料庫團隊,把它放到同一個資料夾結構裡。

  4. 接著,選擇 執行任務 以執行遷移。 如果程式碼備註正確放置,應用程式現代化會參考這些備註,產生更高品質的 SQL 轉換,並透過管理身份驗證進行資料庫用戶端更新。 否則,轉換會套用一般的 Oracle 到 PostgreSQL 語法調整來提出變更。

    Visual Studio Code 的截圖,顯示透過 GitHub Copilot 執行的從 Oracle 移轉到 PostgreSQL 的現代化任務。

另請參閱

想了解更多關於 GitHub Copilot 應用程式現代化的資訊,請參閱 GitHub Copilot 應用程式現代化文件