2012-03-26 75 views
18

我使用Entity Framework 4.3數據庫遷移創建了一個新的應用程序。使用「update-database」命令從包管理器控制檯可以很好地進行遷移。從Team City運行更新數據庫

現在我想在每次使用Team City構建應用程序時運行數據庫遷移,看起來我需要創建一個將執行此操作的PowerShell腳本。

任何人都可以指示我如何讓命令行或powershell運行包管理器命令嗎?我所能找到的是關於如何通過包管理器控制檯執行此操作的說明,我不知道如何從Team City構建步驟運行。

+2

EF 4.3包含名爲'migrate.exe'的命令行工具,它提供了與'Update-Database'相同的功能。 – 2012-03-26 08:04:29

回答

18

migrate.exe是我正在尋找,它在「packages \ EntityFramework.4.3.1 \ tools」中找到。

加入團隊市一個新的構建步驟中使用:

亞軍類型:命令行

命令來執行:包\ EntityFramework.4.3.1 \工具\ migrate.exe

命令參數: MyApplicationName \ StartupDirectory:MyApplicationName \ bin

6

將實體框架nuget安裝到回購站,並使用packages \ EntityFramework.5.0.0 \ tools \或相應的相應migrate.exe。

然後像這樣運行批處理腳本:

SET AssemblyName=MyMvc4App 
SET StartUpDirectory=MyMvc4App\bin\ 
SET ConnectionString=Server=tcp:XXXX.database.windows.net,1433;Database=XXXX;User ID=XXXX;Password=XXXX;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True 
SET ConnectionStringProvider=System.Data.SqlClient 
SET ConfigFilePath=%CD%\MyMvc4App\web.config 
SET MigrateExe=packages\EntityFramework.5.0.0\tools\migrate.exe 

%MigrateExe% %AssemblyName%.dll /startUpDirectory:%StartUpDirectory% /startUpConfigurationFile:"%ConfigFilePath%" /connectionProviderName:"%ConnectionStringProvider%" /connectionString:"%ConnectionString%" /verbose 
pause 

我回答了similar question而且我解釋爲什麼我還沒有得到它的工作,而不指定網絡/ app.config文件。