我正在设置 Azure 发布管道,我需要执行任何待处理的数据库迁移作为发布的一部分。
我在互联网上搜索了一个多小时,我能找到的所有内容都是关于 .NET Core 的,而数据库是 .NET Framework 上的 EF6,而不是 .NET Core(我之前为 Core 做过几次)。
在我看来,问题在于 EF6 使用 Visual Studio 内置的包管理器控制台工作 - Azure Pipeline 中不存在这种情况;这是 Visual Studio 的一个奇怪之处。
我不知道如何在管道的上下文中开始......
选项 1:在管道上运行迁移 - 但是...如何运行?
选项 2:SQL 脚本 - 需要运行包管理器来生成它们,以便可以运行它们(如果我可以在管道上执行此操作,那么无论如何我都会运行它,因此必须在本地创建这些脚本并使用代码提交在我看来,这是一个有点落后的解决方案)
选项 3:编写控制台应用程序 - 我真的必须这样做吗?
这里的答案是使用 ef6.exe 命令行工具并确保它随您的构建一起提供。
这对这里的任何人都可能有用,直到微软更新不存在的文档:http://github.com/dotnet/EntityFramework.Docs/issues/1740 - 这包含一个表,其中包含两者之间的一种转换矩阵.