迁移完成后回退至上一版本

    场景介绍

    • 该操作适用于完成更新数据库迁移后想回退至上一次迁移的版本或更早版本

    操作步骤
    步骤一:环境说明

    • 以示例中的环境为例

    迁移完成后回退至上一版本 - 图1
    目前总共进行了3次迁移,第一次为数据库初始化操作,第二次迁移为SaleOrder表添加Test字段,第三次迁移为SaleOrder表添加Test2字段。
    当前需求为回退至第二次迁移结果,即去掉SaleOrder表的Test2字段
    当前数据库表结构
    迁移完成后回退至上一版本 - 图2
    步骤二:执行版本回退操作

    • 实现思路:通过重新更新第二次生成的迁移文件达到版本回退点击Visual Studio头部工具栏中的 工具=》NuGet包管理=》程序包管理控制台,打开程序包管理控制台窗口并执行如第二次生成的迁移文件 Update-database 20210707092201_added_Test_To_SaleOrder
    • 迁移完成后回退至上一版本 - 图3
    • 通过在控制台窗口输出的信息可以看到系统执行了Reverting migration ‘20210707092316_added_Test2_To_SaleOrder’操作注1:如在执行回退操作时,数据库中的Test2字段已有数据,则在退回成功后数据丢失。该情况下请慎重考虑后再进行操作。注2:如需要回退至更早的版本,只需要通过Update-database 迁移文件名称 该方法指定对应的迁移文件即可。回退至更早版本时请慎重思考数据是否会丢失或影响其他表数据等因素。

    步骤三:回退结果验证

    • 验证数据库表结构,字段Test2已删除
      迁移完成后回退至上一版本 - 图4