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

执行update-database命令更新数据库后如何回滚EF Core数据库迁移?

EF Core 已应用数据库迁移的回滚方案

完全可以回滚已经通过update-database执行的迁移操作,具体操作方法如下:

操作命令

根据你使用的命令行工具二选一即可:

  • 包管理控制台(PMC,Visual Studio 内置)
    执行命令:Update-Database <目标迁移名称>
    示例:如果你最近依次应用了InitBaseTables、AddUserAgeField、AddOrderTable三个迁移,要回滚后两个迁移回到InitBaseTables的状态,执行:
    Update-Database InitBaseTables
  • .NET CLI(跨平台命令行)
    对应命令为:dotnet ef database update <目标迁移名称>
    上面的示例对应的CLI命令为:
    dotnet ef database update InitBaseTables

如果需要回滚所有迁移,恢复到完全未创建迁移的空数据库状态,直接将目标迁移名称替换为0即可:

  • PMC 命令:Update-Database 0
  • CLI 命令:dotnet ef database update 0

注意事项

  • 回滚的核心逻辑是执行目标迁移之后所有迁移的Down方法,如果你编写迁移时修改、删除了对应迁移的Down方法逻辑,可能导致回滚失败,生产环境执行回滚前务必先备份数据库。
  • 回滚操作仅默认处理数据库结构变更,如果你的Down方法没有做业务数据的兼容处理,回滚过程中会丢失对应字段/表的存量业务数据。
  • 如果已经手动删除了要回滚的迁移对应的代码文件,无法直接执行回滚,需要先恢复对应的迁移文件后再操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:24:02