用途:为 .NET 项目提供安全、可回滚的迁移流程指导,适用于 EF Core 数据库迁移、NuGet 依赖更新和 .NET 版本升级三类场景。
核心原则:应用前先用 dotnet ef migrations script 查看将执行的 SQL,不盲目执行;每次迁移都先写好回滚方案(EF Core 用 dotnet ef database update <PreviousMigration>,包用 git revert,版本升级用分支回滚);每步迁移后运行完整测试套件,集成测试可配合 Testcontainers 发现真实数据库问题;每个迁移只对应一个逻辑变更;升级时一次只改一个包或一个目标框架,改完即构建测试。
主要能力与用法: EF Core 迁移流程为查看状态(dotnet ef migrations list)、创建迁移(dotnet ef migrations add AddOrderShippingAddress)、审查生成的 SQL(dotnet ef migrations script --idempotent)、处理数据丢失警告(在迁移里分步添加可空列、复制数据、改为非空、删除旧列)、应用并验证(dotnet ef database update 后 dotnet test)、必要时回滚(dotnet ef database update PreviousMigrationName 与 dotnet ef migrations remove)。审查 SQL 时需重点排查数据丢失(DROP COLUMN、DROP TABLE、精度变化的类型修改)、大表上的长锁,以及新增非空列缺少默认值。 NuGet 更新流程为审计现状(dotnet list package --outdated、dotnet list package --vulnerable)、按补丁/次要/主要版本分类、增量更新(补丁可批量,次要与主要每次一个并在每次后构建测试)、参考包推荐文档、最后验证。 .NET 版本迁移为评估当前目标框架、执行迁移前检查清单、更新 global.json、更新各 csproj 的 TargetFramework 与 LangVersion、更新 Microsoft.* 包、采纳新特性(如 TimeProvider、HybridCache、主构造函数、集合表达式、field 关键字)、再做验证。
反模式:不看 SQL 直接 dotnet ef database update;一次更新所有包;迁移后跳过测试;一个迁移里塞入多个不相关变更;修改已应用的迁移(应改为新建迁移)。
限制:资料未提供安装方式、价格、适用 .NET 版本下限或平台要求等信息,暂未提供。