EFCore 迁移(5)

发布时间 2023-12-22 17:58:09作者: 落花流水1173

当模型发生更改时,将在正常开发过程中添加和删除迁移,并将迁移文件签入项目的源代码管理,进行迁移时,必须在启动程序中安装nuget包:Microsoft.EntityFrameworkCore.Tools,并在VS的程序包管理器控制台执行迁移指令

管理迁移:

1、新增迁移,Init指迁移名称,用途与版本控制中提交信息类似,有助于维护,回滚等

Add-Migration Init

执行迁移指令后,会在项目中添加“Migrations”文件夹,并添加两个文件:

        xxxxxxxxxxxx_Init.cs:迁移文件

        MyDbContextModelSnapshot.cs:当前模型的快照

注意:执行迁移指令后,只是生成迁移文件,还没有把迁移应用到数据库,也就是说此时数据库还没有任何更改

2、删除迁移:有时可能在添加迁移后意识到需要在应用迁移前对 EF Core 模型作出其他更改。 要删除上个迁移,请使用如下命令

Remove-Migration

 应用迁移:

       在程序执行完Add-Migration 添加迁移后,需要把迁移应用到数据库,有两种方式:

1、使用以下命令,update-database:把最新的迁移应用到数据库

Update-Database

  或  Update-Database xxx:把xxx迁移应用到数据库,xxx可以不是最新的,也就是说可以通过指定xxx回滚到较早的迁移,但注意可能会导致数据丢失,且迁移文件不会删除

Update-Database AddStudentGender

2、使用SQL脚本进行迁移

      执行以下命令生成迁移代码:

Script-Migration

    也可以使用 Script-Migration xxx yyy 执行指定从xxx到yyy的迁移,如果xxx比yyy更新,则可以实现回滚

    执行完Script-Migration后vs会生成SQL脚本,在数据库中再执行这个脚本,完成数据库迁移

建议:开发过程中可以使用Update-Database,但生产环境下建议使用Script-Migration生成脚本再执行,这样风险较小

EFCore迁移官方文档