1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | planning-oracle-to-postgres-migration-integration-testing | — |
| 作者/维护者 | GitHub(github/awesome-copilot 仓库) |
GitHub API |
| 来源链接 | https://github.com/github/awesome-copilot/tree/main/skills/planning-oracle-to-postgres-migration-integration-testing | — |
| 许可证 | MIT | GitHub API |
| GitHub Stars | 39,099(合集仓库整体,非本技能个体数据) | GitHub API |
| Forks | 4,960(合集仓库整体) | GitHub API |
| 最新版本 | 无独立版本号;仓库持续滚动更新,本技能文件最近一次改动 2026-07-14 | GitHub API(commits) |
| 安装方式 | 直接复制目录到 skills/ 下,或通过 Copilot 插件市场安装 |
见第 10 章 |
2. 功能介绍与亮点
本技能面向 .NET 项目从 Oracle 迁移到 PostgreSQL 的场景,专职完成迁移流程中的一个具体环节——为单个目标项目制定集成测试计划。它不写代码、不改数据库,只做一件事:扫描目标项目,找出所有直接接触数据库的类和方法(Repository、DAO、存储过程调用方、执行 CRUD 的 Service 层),按迁移风险排序,再产出一份结构化的 Markdown 测试计划。
核心亮点:
- 风险优先排序:明确要求把使用 Oracle 专有特性的方法(如
refcursor、TO_CHAR、隐式类型转换、NO_DATA_FOUND)排在普通 CRUD 之前,抓住迁移中最容易出问题的地方。 - 覆盖率兜底:要求测试计划确保每个数据库触点至少有一条测试用例,高风险方法可以有多条并给出理由。
- 具体到边界条件:明确点名要覆盖空字符串与 NULL 的区别、日期时区往返一致性、
timestamp without time zone/timestamp(0)这类容易在跨库迁移中出错的细节,而不是泛泛地说“写测试”。 - 单一职责、产出物明确:只输出一份 Markdown 报告到固定路径,不越权处理项目范围外的业务逻辑,与同仓库其他迁移阶段技能(生成迁移清单、脚手架测试项目、编写测试代码)职责边界清晰。
- 属于 GitHub 官方仓库
awesome-copilot的一部分,MIT 协议,完全开源可审计。
3. 适用场景
固定分类:工程效率与代码质量。
适用于正在执行 .NET 应用 Oracle→PostgreSQL 数据库迁移的开发团队,尤其是负责制定测试覆盖策略、需要在动手写迁移测试代码之前先摸清“这个项目到底有哪些地方碰数据库、哪些地方风险最高”的开发者或技术负责人。典型触发时机:完成迁移清单梳理之后、正式编写集成测试之前的规划阶段。
4. 跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 ✅ | 标准 Agent Skills 规范 SKILL.md(YAML front matter + 指令正文),直接复制进 skills 目录即可加载 |
| Codex CLI | 需适配 ⚠️ | Codex CLI 不会自动发现 ~/.codex/skills 目录,需在对话中手动引用该 SKILL.md 文件路径 |
| OpenClaw | 原生支持 ✅ | 采用与 Claude Code 相同的 SKILL.md 标准,自动扫描工作区技能并按 description 字段自动选用,官方文档确认跨平台技能通常无需改动即可用 |
| Hermes Agent | 原生支持 ✅ | 从可配置的 skills 目录自动发现技能并按 description 字段激活,会忽略非 Hermes 专有的 frontmatter 字段,Markdown 正文与本技能一样按预期工作 |
5. 推荐理由
Oracle 到 PostgreSQL 的数据库迁移最容易踩坑的地方不是“代码翻译”本身,而是行为差异(类型转换、空值语义、时区处理)在测试阶段才暴露。这个技能把“该测什么、按什么优先级测、边界条件有哪些”这件容易被跳过或临时想到哪测到哪的工作,固化成一份结构化、可复核的计划文档,且不依赖迁移流水线中其他环节先跑完——拿到目标项目就能用,门槛低、产出物边界清晰,适合作为迁移测试工作的起点。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 发布方 GitHub 是公认的一线科技厂商;本技能所属子目录未见独立热度证据,合集仓库整体星数(39,099)属整个 awesome-copilot 仓库,不代表本技能自身热度 |
| 可用性 | 8 | 零外部依赖,只需目标 .NET 项目本身即可使用,不依赖同仓库其他迁移技能已产出的中间文件;三步流程清晰,输出路径固定;文件近 2 个月内有更新,维护活跃 |
| 安全性 | 9 | 纯读取分析 + 生成 Markdown 报告,不执行 shell 命令、不联网外发数据、不涉及凭据;开源可审计,未见任何可疑指令 |
综合评分(三项均值):8.0
安全检查清单逐项结果: ① 是否执行 shell 命令及权限范围——不涉及,仅读取代码与写入 Markdown 文件;② 运行时是否联网外发数据——否;③ 是否要求 API key/凭据——否;④ SKILL.md 正文有无可疑指令——未发现任何要求推广第三方产品或执行无关操作的字样;⑤ 作者/组织信誉——GitHub 官方仓库,无造假迹象;⑥ License——MIT,明确;⑦ 最近维护时间——2026-07-14,约 2 个月前,活跃。
7. 跟同类 Skills 相比的优势
| 技能 | 定位 | 与本技能的差异 |
|---|---|---|
| creating-oracle-to-postgres-master-migration-plan(同仓库) | 迁移流程入口,扫描 .sln/.csproj 生成整体迁移清单与顺序规划 | 覆盖范围是“迁移该怎么排期”,不涉及测试用例设计;本技能是排期完成后针对单个项目的测试规划环节 |
| scaffolding-oracle-to-postgres-migration-test-project(同仓库) | 生成测试项目脚手架(事务回滚基类、种子数据管理器) | 产出的是可运行的项目骨架代码,本技能产出的是先于写代码之前的规划文档,两者面向迁移流程的不同阶段 |
| distributed-system-testing | 通用分布式系统测试策略 | 面向系统架构层面的测试设计,不针对数据库迁移这一具体场景,也不区分 Oracle/PostgreSQL 行为差异 |
| testing-pyramid(rrezartprebreza-spring-boot-skills) | Spring Boot 项目的测试金字塔搭建建议 | 面向 Java/Spring 生态的测试分层方法论,不涉及 .NET 或跨数据库迁移场景 |
本技能的差异化在于:只服务于“数据库迁移”这一个具体场景,且专门把 Oracle/PostgreSQL 之间已知的行为差异(空值、时区、精度)写进测试要点,通用测试策略类技能不会做这层针对性覆盖。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。检索到的第三方技能聚合站点(如展示“4.4 星、62 条评价”的列表页)经核实为算法生成的占位内容——评价者姓名模式高度雷同、措辞几乎逐字重复且直接嵌入技能名,不构成真实用户反馈。GitHub 仓库内可检索到的相关 issue 为仓库自动化机器人生成的资源新鲜度巡检报告,同样不属于用户讨论。
9. 其他补充
同仓库内的 Oracle→PostgreSQL 迁移家族共 8 个子技能,覆盖迁移清单规划、存储过程翻译、数据访问层代码迁移、测试脚手架、测试用例编写、缺陷报告、迁移复核等完整流水线各阶段,本技能是其中的测试规划环节。
10. 安装使用方式
方式一(直接复制):将 skills/planning-oracle-to-postgres-migration-integration-testing/SKILL.md 复制到本地 agent 的 skills 目录(如 Claude Code 的 .claude/skills/ 或 OpenClaw、Hermes Agent 各自的技能目录)。
方式二(Copilot 插件市场):通过 awesome-copilot 仓库提供的插件安装流程获取。
安装后无需重启,agent 会依据 description 字段中的关键词(集成测试计划、Oracle-to-PostgreSQL 迁移、数据访问测试覆盖)自动判断何时调用;Codex CLI 用户需要在对话中手动指出该 SKILL.md 的文件路径。
11. 注意事项
- 本技能只产出测试计划文档,不生成实际测试代码,需要配合同族的测试用例编写技能或人工完成后续实现。
- 仅限定分析单个目标项目,不会跨项目关联分析,多项目迁移需逐个调用。
- 计划中标注的“高风险 Oracle 特性”覆盖面基于常见迁移场景归纳,具体项目仍需人工复核是否有遗漏的专有语法。