EFCore数据库迁移命令整理

摘要:
因为开发新项目的过程。netcore现在经常涉及数据命令的迁移。如今,EFCore有两种迁移数据库的方法:包管理器控制台和PackageManagerConsole(PMC)。如果您使用visual studio进行开发,建议使用PMC迁移方法。此方法是一个2命令行工具,支持efcore和原始ef迁移,命令行界面(CLI)-此方法适用于跨平台开发期间的迁移

因为现在用.net core 开发新项目,过程中需要经常涉及到数据命令的迁移,今天分别整EFCore 的两种迁移数据库的方式 

1 程序包管理器控制台 , Package Manager Console(PMC)

       -如果你用visual studio 开发建议使用PMC迁移方式,该方式是同时支持efcore和原先的ef 迁移的

2 命令行工具 ,Command line interface (CLI)

       -该方式适用于跨平台开发的时候进行迁移数据库的,也就是可脱离visual studio,比如你用vs code,或直接打开cmd控制台进行操作

1.下面先列出两种方式对比,然后再分用vs 和vscode分别详细说明

迁移命令描述CLI命令PMC命令
创建迁移:migrationname为迁移名称dotnet ef migrations add migrationNameadd-migration migrationName
移除迁移(删除最近的一次迁移)dotnet ef migrations removeremove-migration
应用所有的迁移(使迁移文件应用到数据库)dotnet ef database updateupdate-database
指定版本进行迁移dotnet ef database update migrationNameupdate-database migrationName
生成对应版本的脚本dotnet ef migrations scriptScript-Migration
查看迁移列表dotnet ef migrations list 
查看数据库上下文信息dotnet ef dbcontext info 

2.程序包管理器控制台 , Package Manager Console(PMC)

   打开visual studio 程序包管理控制台,首先要善于使用pmc的帮助,输入get-help 查看帮助信息,根据提示我们可以输入 get-help about_entityframework  获取帮助信息,输入命令后我们应该能看到一只霸气的野马头像 ,头像下面就是efcore的相关帮助文档了 ,入下图

 EFCore数据库迁移命令整理第1张

  1. add-migration  这个命令一般都不会有啥问题输入命令回车在输入迁移名称就ok

  2. remove-migration 这个也是如果想删除最后一次迁移 直接执行就好

  3. update-database 第一步添加一个迁移文件成功后,可以用该命令直接更新到数据库,默认是所有迁移,如果想指定迁移直接加上迁移文件的名字就好了,如:update-database migrationName,也相当于版本回滚操,比如有版本1,2,3 此时我想回滚到版本1  就直接 update-database 1,此时数据库中已经更新到1版本了,然后在两次remove-migration把2和3的迁移文件删除就好了

  4. Script-Migration  这个命令用于生成迁移文件对应的sql语句的,跟之前的ef貌似有些不一样,该命令如果不加任何参数 是默认生成所有迁移文件对应的sql语句,当然也参照格式指定餐宿

     Script-Migration -From migrationName1 -To migrationName2  -Context ContextName

     有意思的是 ,它不会生成from对应的迁移文件的sql,也就是说想上面这么写只会生生成migrationName2的sql语句,那么问题来了 ,需要生成第一个迁移文件的sql怎么办?经过查看官方文档,需要指定from参数为0,也就是  Script-Migration -From 0

  5. 最后温馨提示 使用 Get-Help <cmdlet-name>即可获取对应命令文档,如 get-help update-databa

3 跨平台命令行工具 ,Command line interface (CLI)

  打开vscode  命令终端 输入dotnet ef 后也能看到一直霸气野马的头像,也将列出相关帮助信息

EFCore数据库迁移命令整理第2张

1.dotnet ef migrations add  生成一条迁移

2.dotnet ef migrations remove  删除最新一次迁移

3. dotnet ef  database  update 生成迁移到数据库,跟上面pmc命令类似 后面加指定的迁移作为参数可以进行版本的回滚

4.dotnet ef migrations script   也跟pmc类似  如果没有任何参数的话默认是生成所有sql脚本,但是参数格式略有不同如下:dotnet ef migrations script migrationName1  migrationName2 ; 是像这样直接跟迁移名称的也就是生成migrationName1 到migrationName2 的sql脚本

相关链接:

官方文档:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/

efcore相对之前ef的一些变更:https://msdn.microsoft.com/magazine/mt614250

efcore反向工程dbfirst:https://code.msdn.microsoft.com/How-to-using-Entity-1464feea

免责声明:文章转载自《EFCore数据库迁移命令整理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇web打印实现方案 Lodop6.034 使用方法总结iOS学习系列 标签Tag列表的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux 更改mysql的数据库目录

MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:1、home目录下建立data目录cd /homemkdir data2、把MySQL服务进程停掉: mysqladmin -u root -p shutdown3、把/var/lib/mysql整个目录移到/home/datamv /...

使用PowerDesign15反向生成数据库

在Pd15中建立物理模型后,可以通过反向工程直接生成数据库的表结构。主要有以下几个步骤: 1、 首先设置一下数据库配置,选择对应要使用的数据库(此处选择Sql Server 2008 R2) 2、 配置数据库连接 3、 选择新建一个连接 4、 点击添加按钮 5、 选择Sql Server 6、 输入连接的名称以及数据库服务器地址 7、 选择...

什么时候用Model,什么时候用Entity?[转载知乎-备忘]

在建立一个实体类的时候,究竟是用Model还是用Entity?比如MVC中,Model存了数据实体,但是他被称为Model,而在EF中,Entity也是存放数据实体,却被称作Entity,这两者有何区别?那究竟什么时候应该用Model什么时候应该用Entity呢?  赵劼: 一般这种称谓都是根据上下文来的,例如Model是因为有MVC,或MVVM的场景下...

3.oracle几种常用的登录方式

1.前言   这里我们在安装后oracle数据后就可以使用sqlplus命令进行登录了 2.oracle数据库的几种登录方式   2.1 sqlplus /nolog  (这样是为了不在cmd 或者terminal 上暴露密码的登录方式) $ sqlplus /nolog SQL> conn /as sysdba 或者 $ sqlplus /nol...

使用ssh远程执行命令批量导出数据库到本地(转)

前天正在跟前端的同事调试功能。服务器开好,模拟的玩家登录好,就在倒计时。这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据。好吧,我看了一下时间,11:47。心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧。没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的。我嚓,好吧,我导。...

SQL的OPENROWSET开启和使用方法

[转载]SQL的OPENROWSET开启和使用方法   1、开始 —>  所有程序  —>  Microsoft SQL Server 2005  —>  配置工具  —>  SQL Server外围应用配置器  —>  功能的外围应用配置器  —>  实例名  —>  Database Engine  —&...