如何在 Azure Pipeline 中运行 .NET Framework/EF 迁移?

问题描述 投票:0回答:2

我正在设置 Azure 发布管道,我需要执行任何待处理的数据库迁移作为发布的一部分。

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

在我看来,问题在于 EF6 使用 Visual Studio 内置的包管理器控制台工作 - Azure Pipeline 中不存在这种情况;这是 Visual Studio 的一个奇怪之处。

我不知道如何在管道的上下文中开始......

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

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

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

azure-devops azure-pipelines nuget entity-framework-6 entity-framework-migrations
2个回答
0
投票

您可以尝试实体框架迁移扩展

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

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

您也可以查看这篇文章


0
投票

这里的答案是使用 ef6.exe 命令行工具并确保它随您的构建一起提供。

这对这里的任何人都可能有用,直到微软更新不存在的文档:http://github.com/dotnet/EntityFramework.Docs/issues/1740 - 这包含一个表,其中包含两者之间的一种转换矩阵.

© www.soinside.com 2019 - 2024. All rights reserved.