欢迎光临
个人技术文档整理

EFCore Migration操作命令

安装程序包

//一般默认都带了此程序包的
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.Tools

 

Migration相关说明:

使用迁移脚本,可以对当前连接的数据库执行编号更高的迁移,这个操作叫做“向上迁移”(Up),也可以执行把数据库回退到旧版本的迁移,这个操作叫做“向下迁移”(Down)。
除非有特殊需要,否则不要删除migration文件夹下的代码。包括数据库自动生成的__EFMigrationsHistory表中的数据。如果人为删除可能会引发数据库版本混乱的情况。

常用命令说明:

1、增加迁移脚本   

  • 根据最新实体,生成数据库更新脚本 (只生成脚本文件,不会操作数据库)
  • 执行一次迁移,创建迭代版本
  • 如果该命令是首次创建,则会在执行命令的项目下生成Migrations文件夹
Add-Migration 【版本名称】
//指定DbContext创建迁移
Add-Migration 【版本名称】 -Context  【TestDbContext】              

2、更新数据库

  • 更新 脚本到数据库
  • 回滚 到  某个版本 (去数据库里面执行)
//默认执行最新的脚本
Update-Database
//指定版本名称
Update-Database 【版本名称】
//指定DbContext 
Update-Database 【版本名称】 -Context  【TestDbContext】
//删除表结构
Update-Database 0  
Update-Database -Migration:0

3、删除最后一次迁移的脚本

  • 删除最后一次迁移的脚本,此命令用于  add-migration xxx 后生成了脚本后,对该脚本的删除操作。
  • 注意,如果生成了多个Migration文件,需要连续执行多次 
  • 只能删除 未应用 到数据库的脚本 
//默认删除 最后一次迁移
Remove-Migration
//指定DbContext 
Remove-Migration 【版本名称】 -Context  【TestDbContext】

4、Script-Migration

  • 生成迁移SQL的代码,此脚本生成的代码是可以直接拿到数据库执行的。不同于add-migration生成的脚本只能由EF Core执行。该命令主要用于开发完成后生成脚本,将脚本放到生产环境中执行。因为生产环境不方便执行update-database这样的更新命令,主要是不安全。
  • 生成版本D到版本F的SQL脚本: script-migration D F
  • 生成版本D到最新版本的SQL脚本: script-migration D 
//生成 从v1迁移到v2的语句
Script-Migration -F v1 -T v2
//与上面一样的效果
Script-Migration -From v1 -To v2  -Context 【TestDbContext】
//生成 版本v1 到最新版本(v2) 的脚本
Script-Migration v1
//只生成版本 v1  (v1为第一个版本)
Script-Migration  0 v1

5、其他命令

//删除数据库
Drop-Database    
//获取有关 DbContext 类型的信息       
Get-DbContext               

 

 

 

 

赞(1)