EFCore数据库迁移命令整理
前言
因为现在用.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 migrationName | add-migration migrationName |
| 移除迁移(删除最近的一次迁移) | dotnet ef migrations remove | remove-migration |
| 应用所有的迁移(使迁移文件应用到数据库) | dotnet ef database update | update-database |
| 指定版本进行迁移 | dotnet ef database update migrationName | update-database migrationName |
| 生成对应版本的脚本 | dotnet ef migrations script | Script-Migration |
| 查看迁移列表 | dotnet ef migrations list | |
| 查看数据库上下文信息 | dotnet ef dbcontext info |
2.程序包管理器控制台 , Package Manager Console(PMC)
打开visual studio 程序包管理控制台,首先要善于使用pmc的帮助,输入get-help 查看帮助信息,根据提示我们可以输入 get-help about_entityframework 获取帮助信息,输入命令后我们应该能看到一只霸气的野马头像 ,头像下面就是efcore的相关帮助文档了 ,入下图

add-migration 这个命令一般都不会有啥问题输入命令回车在输入迁移名称就ok
remove-migration 这个也是如果想删除最后一次迁移 直接执行就好
update-database 第一步添加一个迁移文件成功后,可以用该命令直接更新到数据库,默认是所有迁移,如果想指定迁移直接加上迁移文件的名字就好了,如:update-database migrationName,也相当于版本回滚操,比如有版本1,2,3 此时我想回滚到版本1 就直接 update-database 1,此时数据库中已经更新到1版本了,然后在两次remove-migration把2和3的迁移文件删除就好了
Script-Migration 这个命令用于生成迁移文件对应的sql语句的,跟之前的ef貌似有些不一样,该命令如果不加任何参数 是默认生成所有迁移文件对应的sql语句,当然也参照格式指定餐宿
Script-Migration -From migrationName1 -To migrationName2 -Context ContextName
有意思的是 ,它不会生成from对应的迁移文件的sql,也就是说想上面这么写只会生生成migrationName2的sql语句,那么问题来了 ,需要生成第一个迁移文件的sql怎么办?经过查看官方文档,需要指定from参数为0,也就是 Script-Migration -From 0
最后温馨提示 使用 Get-Help <cmdlet-name>即可获取对应命令文档,如 get-help update-databa
3 跨平台命令行工具 ,Command line interface (CLI)
打开vscode 命令终端 输入dotnet ef 后也能看到一直霸气野马的头像,也将列出相关帮助信息

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
本文永久更新地址:http://siyouku.cn/article/6871.html
asp.net core 开发框架:https://github.com/2014fighting/CodeFrame.Web.git
EFCore数据库迁移命令整理的更多相关文章
- 静态文件link 数据库迁移命令 新建app命令
<link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css"& ...
- MVC5数据库迁移命令!
首先数据库迁移在上下文里设置要设置成为CreateDatabaseIfNotExists, 然后在Nuget控制平台输入命令 在“程序包管理器控制台”窗口中输入:Enable-Migrations ...
- 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、
django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...
- django框架常用的数据库迁移命令
python manage.py makemigrations 默认所有修改过的model层转为迁移文件 python manage.py migrate 默认将所有的迁移文件都执行,更新数据库 ...
- Oracle数据库sql命令整理
转至:https://blog.csdn.net/weixin_43712330/article/details/88358604 以下为oracle数据库中sql语句的整理,将持续更新01. 如何登 ...
- Oracle数据库常用命令整理
转至:https://blog.csdn.net/creativemobile/article/details/8982164 1监听 (1)启动监听 lsnrctl start (2)停止监听 l ...
- flask数据库迁移理解及命令
前言: 使用数据库迁移,可以直接建表,而不用我们自己写sql语句用来建表.就是将关系型数据库的一张张表转化成了Python的一个个类. 在开发中经常会遇到需要修改原来的数据库模型,修改之后更新数据库, ...
- 3.3 使用Code First数据库迁移
当Entity Framework Code First的数据模型发生异动时,默认会引发一个System.InvalidOpertaionException异常.一种解决方法是在Global.asax ...
- asp.net mvc CodeFirst模式数据库迁移步骤
利用Code First模式构建好基本的类后,项目也开始搭建完毕并成功运行,而且已经将数据库表结构自动生成了. 但是,我有新的类要加入,有字段需要修改,那怎么办呢,删库,跑路 ? 哈哈 利用数据库迁 ...
随机推荐
- Spider爬虫 の 事
初识Spider_Man(爬爬虫) Spider_Man_2 の requests模块 Spider_Man_3 の selenium Spider_Man_4 の BeautifulSo ...
- UE4 unreliable 同步问题
今天发现了一个问题,标记为unreliable的函数从来不执行,但是官方文档上的说明是只有在网络负载重时才不执行此类函数,哎哎哎.
- Linux 离线安装Rubygems详解
很多时候我们会发现,真实的生成环境很多都没有外网,只有内网环境,这个时候我们又需要安装RubyGems,则不能提供yum命令进行在线安装了,这个时候我们就需要下载安装包进行离线安装.本文主要简单介绍如 ...
- 用户使用VPS的12个常见问题
1.VPS主机用户能否进行备份? VPS主机允许用户进行自主的备份,这个操作非常简单,是需要在用户控制面板点击备份按钮即可.同时还允许用户恢复到任何备份状态. 2.当某个VPS主机用户被攻击时,会不会 ...
- 最大连接数:60 iops:150 什么概念?
最大连接数:最多允许同时多少个客户端连接到数据库 iops:每秒读写操作的次数 关于最大连接数: 假设一个时间点:00:01:00 00:01:01 -> 第一个客户端连接到数据 ...
- MySQL事务隔离级别的实现原理
回顾 在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别. 读未提交:一个事务可以读取到另一个事务未提交的修改.这会带来脏读.幻读.不可 ...
- 如何让你的.vue在sublime text 3 中变成彩色?
1.打开sublime,按住shift+Ctrl+P,回车 2.输入Vue Syntax Highlight(因为我的已经装过了,所以这里没有显示) 3.选择Vue Syntax Highlight, ...
- SQLServer导出数据表结构
SELECT (case when a.colorder=1 then d.name else '' end)表名, a.colorder 字段序号, a.name 字段名, (case when C ...
- linux 从softnet_stat查看内核丢包信息
1.从系统整体来考虑,通过netstat 查看: [root@localhost net]# netstat -s |grep drop 3168 outgoing packets dropped 1 ...
- Redis集群方案怎么做?大牛给你介绍五种方案!
Redis集群方案 Redis数据量日益增大,而且使用的公司越来越多,不仅用于做缓存,同时趋向于存储这块,这样必促使集群的发展,各个公司也在收集适合自己的集群方案,目前行业用的比较多的是下面几种集群架 ...