首页 > 解决方案 > Entity Framework 6 .net Framework 迁移/包管理控制台 - 如何在 Azure 管道中运行这些?

问题描述

我正在设置 Azure 发布管道,我需要在发布过程中执行任何挂起的数据库迁移。

我已经在互联网上搜索了一个多小时,我能找到的所有内容都是关于 dotnet Core 的,而数据库是 .Net Framework 上的 EF6,而不是 dotnet Core(我之前已经为 Core 做过几次)。

在我看来,问题在于 EF6 使用 Visual Studio 的内置包管理器控制台工作——这在 Azure 管道中不存在;这是 Visual Studio 的怪事。

在我的脑海中,似乎有几种方法可以给这只猫剥皮,但我不知道如何在管道的背景下从其中任何一种开始......

选项 1:在管道上运行迁移 - 但是......如何?

选项 2:SQL 脚本 - 需要运行包管理器来生成它们以便它们可以运行(如果我可以在管道上这样做,那么我无论如何都会运行它,所以这些必须在本地创建并使用代码提交作为解决方案IMO有些落后)

选项 3:编写控制台应用程序 - 我真的必须这样做吗?

标签: azure-devopsentity-framework-6azure-pipelinesnuget-package-manager-console

解决方案


您可以尝试Entity Framework Migration Extensions

此任务允许 Build / Release 提供数据库连接参数并针对数据库执行 Entity Framework 6 迁移。

  1. 将项目构建到输出文件夹并包含 Entity Framework 6 附带的 migrate.exe 可执行文件。
  2. 创建一个自动构建,打包您的文件并使其在发布期间可访问。
  3. 为相关构建创建发布定义
  4. 添加 EF6 迁移任务。将该任务添加到版本中的环境后,您需要输入适当的参数来配置它。所有文件路径参数都应该在构建的文件系统内,它们都不用于 TFS 源代码控制路径。

您也可以查看这篇文章


推荐阅读