用途
本技能用于评估并把依赖 Oracle 的代码库转换为 PostgreSQL。它强调先深入评估,再以可逆、有界的增量方式乐观转换,并以编译器错误、测试、覆盖率、目标数据库元数据和 Docker 行为作为证据。除非变更确有必要且获批准,否则保留代码库架构和可观察行为。
运行模式
- 评估(Assess):执行只读的数据库评估,使用 git-workspace.md、assessment.md、testing-and-coverage.md 等参考资料,并通过 connection-context.md 解析 PostgreSQL 目标、postgres-provider-routing.md 选择提供程序、postgres-mcp.md 进行目标发现、diagrams.md 生成报告图和覆盖率章节。
- 转换(Convert):基于评估结果,预览影响、获得批准后执行,涉及 conversion.md、database-safety.md、options.md、state-and-convergence.md、language-adapters.md(Java、.NET、Python、C、C++)、agent-orchestration.md、performance-and-execution.md 等。
- 评估并转换(Assess and convert):作为一个不间断的源工作流运行,调用即授权模式及显式启用选项所隐含的可逆源码编辑,记录预览用于审计但不在阶段间暂停,不需要迁移计划。
主要能力
- 检测迁移范围:先运行
<skill-directory>\scripts\detect-migration-scope.mjs静态范围检测器,若零活跃数据库面向引用且零 Oracle 特有引用,则报告 NO_CONVERSION_REQUIRED 并停止;若证据不完整则报告 SCOPE_REVIEW_REQUIRED 并请求范围裁定。 - 支持可选的
oracle-ddl-folder,按.github\postgres-migrations\<name>\artifacts\oracle\<schema>\<object-type>布局索引,并优先作为权威证据;缺失或无唯一匹配时按文档化方式尽力从代码/测试重建,并记录完整性、置信度、假设和限制。 - 对缺失例程、包成员、触发器、视图、物化视图和类型,可生成部署/撤销 DDL,更新应用调用,并在 Docker 中做合成验证;无法推断可执行体时生成显式报错的失败关闭体,而非静默空操作。
- 提供架构/依赖图、关键数据库交互时序图、Oracle 迁移热点表等报告内容。
- 提供选项(options.md)默认全部关闭,包括 create-persistent-ddl、test-target-writes、remove-unused-artifacts、start-docker-desktop 等,不会因一般的评估或转换请求而推断启用。
使用方式
必需输入包括:codebase=<git-repository-root>(单一就地代码库工作区,不得自动初始化 Git,需有附加分支和至少一次提交);postgres-connection=<saved-profile-name-or-id> 和 database=<exact-database-name>;当 test-target-writes 开启时需要 schema=<schema-name>。凭据只能通过已保存的 MCP 配置文件引用,禁止在聊天中提供密码或原始连接字符串。运行前需验证 Node.js 22+,并解析绝对脚本路径执行。
提供程序选择:VS Code Copilot 使用 PostgreSQL 扩展的 pgsql_* 操作;Copilot CLI 使用插件自带的 postgres-mcp 的 postgres_mcp_* 操作,二者不得混用或回退。禁止调用任何名称以 _db_context 结尾的工具。
状态与限制
评估状态仅用:✅ READY、🔧 CONVERTIBLE、⚠️ ACTION NEEDED;评估总会完成,不报告 BLOCKED。转换状态用:✅ READY、🧪 RUNTIME VALIDATION NEEDED、⚠️ PARTIAL、⛔ BLOCKED(仅转换用,属例外情况)。
其他限制:就地转换,不创建独立目标文件夹;保留用户更改,绝不暂存、建分支、stash、reset、丢弃、提交、推送;默认不删除未使用产物;评估默认只读,不写 Oracle 或 PostgreSQL;只格式化变更文件;每个 PostgreSQL 集成或可变基础设施测试使用 Docker;不得从编译或模拟测试声称运行时就绪;绝不更新或删除现有客户行,test-target-writes 下不得执行 TRUNCATE、ALTER、REPLACE、DROP,也不授权对象创建。
环境依赖
Node.js 22+(node、npm、npx 在 PATH 中);Docker Engine/Desktop(除非显式启用 start-docker-desktop,否则由用户启动);Java 代码库需项目要求的 JDK 及 Maven 或仓库 Maven wrapper。
关于具体价格、平台覆盖范围等事实,资料未提供。