其他服务器上的 EF Core 1.1.0 迁移(非开发)

EF Core 1.1.0 Migrations on other servers (not development)

当开发完成并且 TFS (VSTS) 接管时。构建成功完成,工件目录包含通过构建定义发布的网站。然后触发发布管理器,接管并在环境中创建网站,将网站文件复制到环境中并启动网站。目前一切顺利。

此处缺少数据库迁移步骤...

现在有人启动服务器失败了,因为数据库还没有迁移。我们该怎么做? EF 工具没有复制到那个环境,事实上我们甚至不能 运行 dotnet.exe 因为核心 sdk 也没有部署到那个环境。所以即使我们有工具,我们也不能执行它们。

在 EF 6.x 中,这很容易,因为我们可以将 migrate.exe 作为工件的一部分进行复制,而 运行 在复制文件后将其复制到环境中。据我了解,EF 工具现在是一个 DLL (ef.dll),必须 运行 by dotnet.exe。这是否意味着所有 Web 服务器现在都需要 Core SDK 来执行迁移?

关于我的项目设置的其他细节: asp.net.core 应用程序正在部署到 QA 服务器上进行测试。这不是开发箱,没有安装VS2015,没有安装Core SDK。

更新:EF.EXE 是预览版 3 和 4 的一部分。

这解决了安装 "dotnet.exe" 的要求。我可以像以前那样将其复制到工件掉落中 migrate.exe。这是 EF 团队提出的解决方案吗?

为了在您的服务器上运行 .NET Core web 应用程序,您需要在您的服务器上安装.NET Core SDK(目前为1.1)。这样做会给你 dotnet 命令,这样你就可以在你的服务器环境中执行 dotnet ef database update 来更新数据库到指定的迁移。

EF.EXE is part of preview3 and 4.

This solves the requirement for "dotnet.exe" being installed. I can copy that into the artifacts drop like I used to with migrate.exe. Is this the proposed solution by the EF Team?

是的。这样做。

另请参阅问题 #6313,我们希望在其中简化 .NET Core 上的这种体验。