翼度科技»论坛 编程开发 .net 查看内容

EF命令行工具 migrate.exe 进行Code First更新数据库,6.3+使用ef6.exe

11

主题

11

帖子

33

积分

新手上路

Rank: 1

积分
33
EF命令行工具 migrate.exe 进行Code First更新数据库,6.3+使用ef6.exe

使用EF的Code First迁移可以用于从Visual Studio内部更新数据库,但也可通过命令行工具 migrate.exe 进行执行。
如果项目已经更新到服务器,后面的更新数据库分为两种办法,要么把线上数据库备份到本地,然后使用VS迁移,要么使用命令迁移,官方提供了migrate.exe工具,命令如下,但是每次记录一个命令比较麻烦,可以直接写一个bat文件,下次执行就行了

  • 新建bin.bat文件,复制下面代码到文件
  • 复制bin.bat和migrate.exe到bin目录下,其中“Test.EntityFramework”为EF层的类库名,根据各自的项目修改为自己项目对应名,双击执行就行了。
使用migrate.exe(这个一般用EF的项目里面都有的,直接使用类似Everything的搜索工具搜索本地就好了,不提供文件了)
官方文档
  1. @echo off
  2. migrate.exe Test.EntityFramework /startupConfigurationFile="..\\Web.config"
  3. pause
复制代码
EF升级到6.3+的处理方案

EF升级到6.3+的时候官方升级了迁移工具,原来的migrate.exe不能使用,坑了好多人(具体可以看github中各种),改为使用ef6.exe,但是也没有准确的使用文档,只能不断的尝试和网络上找关联的信息,最后测试可以使用的如下(真的是搜索全网都没有,ChatGPT4.0都没用)
ef6.exe文件本地也有,提供下载了
使用方法和migrate.exe类似,命令修改为(“Test.EntityFramework”为EF层的类库名,根据各自的项目修改为自己项目对应名)
  1. @echo off
  2. ef6.exe database update --assembly "Test.EntityFramework.dll" --config "..\\Web.config"
  3. pause
复制代码
复制bin.bat和ef6.exe文件到bin文件夹下,双击执行bin.bat文件就行了
关联信息
1. 微软文档“使用 migrate.exe”,可以看更多命令信息
github中关于该功能修改的讨论
Document ef6.exe and remove doc for migrate.exe #1740
issues moving from migrate.exe to ef6.exe #1605

来源:https://www.cnblogs.com/itljf/archive/2023/05/14/17400476.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具