- A+
所属分类:.NET技术
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的搜索工具搜索本地就好了,不提供文件了)
@echo off migrate.exe Test.EntityFramework /startupConfigurationFile="..\Web.config" pause
EF升级到6.3+的处理方案
EF升级到6.3+的时候官方升级了迁移工具,原来的migrate.exe不能使用,坑了好多人(具体可以看github中各种),改为使用ef6.exe,但是也没有准确的使用文档,只能不断的尝试和网络上找关联的信息,最后测试可以使用的如下(真的是搜索全网都没有,ChatGPT4.0都没用)
ef6.exe文件本地也有,提供下载了
使用方法和migrate.exe类似,命令修改为(“Test.EntityFramework”为EF层的类库名,根据各自的项目修改为自己项目对应名)
@echo off ef6.exe database update --assembly "Test.EntityFramework.dll" --config "..\Web.config" pause
复制bin.bat和ef6.exe文件到bin文件夹下,双击执行bin.bat文件就行了
关联信息
1. 微软文档“使用 migrate.exe”,可以看更多命令信息
github中关于该功能修改的讨论