本文介绍如何使用 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 驱动的数据库迁移工具 - 用于 DB 迁移的 PostgreSQL Visual Studio Code 扩展 - 请参阅 什么是适用于 Visual Studio Code 的 PostgreSQL 扩展预览版?
使用智能 SQL 转换更改与数据库相关的应用代码
GitHub Copilot 应用现代化现在提供专用的迁移任务,旨在解决数据库客户端更新(使用托管标识身份验证)以及 Oracle 到 PostgreSQL 迁移方案所需的 SQL 转换。
关键功能是利用编码笔记的能力。 编码说明详细介绍了数据库迁移的架构更改,可以选择用于生成更精确且语义上一致的 PostgreSQL 兼容代码。 编码说明是使用 PostgreSQL Visual Studio Code 扩展在数据库架构转换阶段自动生成的元数据项目。 编码说明可以包括以下信息:
- 数据类型映射和结构更改。
- 序列、标识和复合类型的转换详细信息。
- 对日期/时间或时间间隔实现的调整。
- 对具有引用完整性约束的表的引用。
- 复杂 Oracle 包的摘要,包括过程和函数签名。
- 为提高代码翻译准确性提供的额外 AI 生成提示。
使用 Oracle 到 PostgreSQL 迁移任务
使用以下步骤在 GitHub Copilot 应用现代化中运行 Oracle 到 PostgreSQL 迁移任务:
若要运行应用程序评估,请按照《快速入门指南》中的说明进行操作:通过使用 GitHub Copilot 进行应用现代化,评估和迁移 Java 项目。
评估完成后,查看生成的报表。 如果应用程序使用 Oracle,则报告会显示与 Oracle 相关的 数据库迁移问题(Oracle), 默认解决方案是 从 Oracle DB 迁移到 PostgreSQL。
可选地,你可以将代码笔记正确放置在应用程序代码文件夹中。 检查
coding_notes.md文件夹中是否存在.github\postgre-migrations\*\results\application_guidance\。 如果不存在,请转到负责 Oracle 到 PostgreSQL 迁移的数据库团队获取它,并将其放入同一文件夹结构中。接下来,选择“ 运行任务 ”以执行迁移。 如果正确放置了编码说明,应用现代化会引用这些说明,以生成更高质量的 SQL 转换,以及使用托管标识身份验证进行数据库客户端更新。 否则,转换会应用常规 Oracle 到 PostgreSQL 语法调整来建议更改。
另请参阅
若要了解有关 GitHub Copilot 应用现代化的详细信息,请参阅 GitHub Copilot 应用现代化文档。