【问题标题】:VSTS Build How to Add update-database command for EF Core Code FirstVSTS Build 如何为 EF Core Code First 添加 update-database 命令
【发布时间】:2018-06-07 18:08:13
【问题描述】:

我使用 VSTS 和 Git 作为源控制器,使用 Azure 作为我的 ASP.NET Core 2.1 API 应用程序的主机,我正在尝试在 VSTS 中使用 CI,所以除了自动更新数据库之外,一切都正常工作,我使用了 EF 核心首先编写代码,我需要在 CI 过程中自动更新 DB(在 Azure 中)。

但是现在,每次我更新项目中的连接字符串(到 Azure DB)并手动运行更新数据库。

对于自动 CI 流程,我发现:

所以我首先在调试控制台中搜索包文件夹以设置命令以使用 packages/migration.exe

Microsoft.AspNetCore.AzureAppServices.SiteExtension\store\x86\netcoreapp2.1

我找不到任何包文件夹或 entifyframework 库

那么我怎样才能找到migration.exe 文件呢?

有没有其他方法可以在 VSTS 中首先为 EF 代码构建自动更新数据库?

更新:

这是我的 nuget 参考:

我添加复制文件步骤:

而配置是:

但我得到了错误:

源文件夹路径好像不正确,我应该添加什么作为源文件夹?

【问题讨论】:

  • 您链接的博客文章提供了非常明确的分步说明。什么不适合他们? Migrate.exe 是 NuGet 包的一部分,不一定要打包并部署在您的 webdeploy 包中。
  • @DanielMann,我更新了问题,我不知道我应该将什么设置为源文件夹?
  • 您是否在部署过程中尝试迁移? stackoverflow.com/questions/46784150/…。另一个让我受益的话题:stackoverflow.com/questions/44746103/…

标签: entity-framework azure continuous-integration azure-devops azure-pipelines


【解决方案1】:

我建议您可以在部署过程中进行迁移:

  1. 使用 EF 迁移配置您的 Web 核心项目:Migrations
  2. 使用实体框架迁移创建发布配置文件(设置 > 实体框架迁移)
  3. 将发布配置文件包含到源代码控制(将 pubxml.user 文件包含到源代码控制或将 ItemGroup 部分 (<ItemGroup><EFMigrations …) 复制到您的发布配置文件 (.pubxml))
  4. 通过 Visual Studio 构建任务发布 Web 应用(MSBuild 参数:/p:DeployOnBuild=true /p:PublishProfile=CustomProfile;DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\myapp.zip"
  5. 将包(步骤 4)部署到您的站点(例如,通过 WinRM-IIS Web 应用部署任务或 Azure 应用服务部署任务)

【讨论】:

  • 关于第4步:用Visual Studio Build任务替换dotnet build会有什么后果?构建管道的其余部分将如何受到影响?例如如何处理dotnet publish 任务
  • 我想知道是否可以在部署期间运行 dotnet ef update in,这样我就不必对默认的构建定义进行太多更改,
  • @Liero 您找到解决方案了吗?我目前正在试验我的构建
  • @Adrian:不,我没有:(
猜你喜欢
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 2018-08-31
  • 1970-01-01
相关资源
最近更新 更多