You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core数据库与迁移状态同步及指定迁移执行咨询

解决EF Core数据库与迁移状态同步及指定范围迁移问题

一、同步手动删除表后的迁移状态

你手动删除了Documents表但未通过EF Core操作,此时数据库中的__EFMigrationsHistory表仍记录着创建该表的迁移已执行,导致数据库与代码迁移状态不一致,分两种场景处理:

场景1:需要恢复Documents表

  1. 在数据库的__EFMigrationsHistory表中,找到创建Documents表对应的那条迁移记录并删除(比如迁移名为CreateDocumentsTable)。
  2. 执行命令:
    Update-Database
    
    EF Core会重新执行被删除记录的迁移,自动重建Documents表,同时同步迁移状态。

场景2:代码中已移除Documents实体(无需恢复表)

  1. 生成新迁移来记录删除Documents表的操作:
    Add-Migration DropDocumentsTable
    
  2. 打开生成的迁移文件,由于你已手动删除表,可将Up方法中DropTable("Documents")的代码注释或移除(避免执行时触发“表不存在”的报错)。
  3. 执行命令完成状态同步:
    Update-Database
    
    此操作会将新迁移记录写入__EFMigrationsHistory,让数据库状态与代码迁移记录对齐。

二、执行指定范围的迁移集

EF Core支持通过指定目标迁移来执行范围迁移:

  • 若要从mig1升级到mig2(mig2是mig1之后的迁移),直接执行:
    Update-Database mig2
    
    EF Core会自动执行mig1之后到mig2的所有未执行迁移。
  • 若要回滚到mig1(撤销mig1之后的所有迁移),执行:
    Update-Database mig1
    

内容的提问来源于stack exchange,提问作者shubhkr1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 17:55:57