2012-03-26 76 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文件。