EF命令行工具 migrate.exe 進行Code First更新資料庫,6.3+使用ef6.exe 使用EF的Code First遷移可以用於從Visual Studio內部更新資料庫,但也可通過命令行工具 migrate.exe 進行執行。 如果項目已經更新到伺服器,後面的更新資料庫分為兩種辦 ...
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中關於該功能修改的討論
Document ef6.exe and remove doc for migrate.exe #1740
issues moving from migrate.exe to ef6.exe #1605