SuperAPI AI 工具集

migrate

办公与效率

查看项目

更新于 10-15 19:51

技能介绍

用途:这是一个 .NET 迁移工作流技能,先对请求分类——架构变更走 Flow A、框架升级走 Flow B、包更新走 Flow C,然后端到端执行。核心原则:先验证再应用、始终准备回滚方案、每步后测试、一次只做一项逻辑变更。

Flow A(EF Core 架构迁移,主流程):用 dotnet ef migrations list --project <InfraProject> --startup-project <ApiProject> 评估当前状态;借助 MCP 工具 find_symbol、get_type_hierarchy、find_references 审查模型变更,确认其为单一逻辑单元;生成迁移时名称需描述变更而非实体,如 dotnet ef migrations add AddOrderShippingAddress --project <Infra> --startup-project <Api>;database update 无 dry-run,需用 dotnet ef migrations script --idempotent --project <Infra> --startup-project <Api> 预览 SQL,重点检查 DROP COLUMN/DROP TABLE、列类型变更、大表锁与新增非空列默认值;数据需保留时采用多步迁移配合原始 SQL;应用后执行 dotnet build && dotnet test;回滚用 dotnet ef database update <PreviousMigrationName>,或 dotnet ef migrations remove。已应用的迁移不可修改,只能新建。

Flow B(.NET 版本升级):用 get_project_graph 审计全部 TFM 并标记混合版本;前置要求测试全绿、无待处理 EF 迁移、依赖兼容、建专用分支(分支即回滚方案);更新 global.json 中的 SDK 版本并设 "rollForward": "latestMinor";在 .csproj 或 Directory.Build.props 更新 <TargetFramework> 与 <LangVersion>;用 dotnet outdated --upgrade Major --include Microsoft.* 更新包后构建修复;最后 dotnet build、dotnet test、dotnet format --verify-no-changes 验证。

Flow C(NuGet 更新):用 dotnet list package --outdated 与 dotnet list package --vulnerable 审计,漏洞包优先处理;按补丁(可批量)、次要(逐个)、主要(逐个并先读发行说明)分级;每次更新一个包后运行 dotnet build && dotnet test,避免批量导致故障难以归因;新增包前查知识库推荐,优先 .NET 内置替代方案;回滚用 git revert 还原包版本,不要降级其他包来补偿。

涉及 MCP 工具:find_symbol / find_references、get_type_hierarchy、get_project_graph、get_diagnostics。适用场景:修改实体或 DbContext 后、为 DBA 生成 SQL 脚本时、升级 .NET 版本、更新包或处理漏洞包告警。限制与收费、平台、支持版本等信息暂未提供。