VSTS构建如何为EF Core Code First添加update-database命令

时间:2018-06-07 18:08:13

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

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

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

对于自动CI流程,我找到:

所以我在Debug Console中搜索找到包文件夹irst以设置命令以使用packages / migration.exe

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Microsoft.AspNetCore.AzureAppServices.SiteExtension \存储\ 86 \ netcoreapp2.1

enter image description here

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

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

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

更新

这是我的nuget参考:

enter image description here

我添加了复制文件步骤:

enter image description here

配置是:

enter image description here

我得到了错误:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

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

  1. 使用EF迁移配置您的Web核心项目:Migrations
  2. 使用实体框架迁移(设置>实体框架迁移)
  3. 创建发布配置文件
  4. 将发布配置文件包含在源代码管理中(包括pubxml.user文件到源代码管理或将 ItemGroup 部分(<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" type="javax.sql.DataSource" initialSize="0" maxActive="10" maxIdle="5" maxWait="5000" minIdle="0" timeBetweenEvictionRunsMillis="34000" minEvictableIdleTimeMillis="55000" testOnBorrow="true" testWhileIdle="true" testOnReturn="false" validationQuery="SELECT 1 FROM dual" validationInterval="30000" removeAbandoned="true" removeAbandonedTimeout="10" name="jdbc/webapp" username="username" password="password" url="${WEBAPPDB}" /> )复制到您的发布配置文件(.pubxml))
  5. 通过Visual Studio构建任务发布Web应用程序(MSBuild参数:<ItemGroup><EFMigrations …
  6. 将程序包(步骤4)部署到您的站点(例如,通过WinRM-IIS Web App部署任务或Azure App Service Deploy任务)