Entity Framework 6.net Framework迁移/包管理控制台-如何在Azure管道中运行这些



我正在设置Azure发布管道,作为发布的一部分,我需要执行任何挂起的DB迁移。

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

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

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

选项1:在管道上运行迁移-但是。。。怎样

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

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

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

此任务允许构建/发布提供数据库连接参数,并针对数据库执行实体框架6迁移。

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

您也可以查看这篇文章。

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

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

相关内容

  • 没有找到相关文章

最新更新