azure-devops - 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:编写控制台应用程序 - 我真的必须这样做吗?
解决方案
您可以尝试Entity Framework Migration Extensions。
此任务允许 Build / Release 提供数据库连接参数并针对数据库执行 Entity Framework 6 迁移。
- 将项目构建到输出文件夹并包含 Entity Framework 6 附带的 migrate.exe 可执行文件。
- 创建一个自动构建,打包您的文件并使其在发布期间可访问。
- 为相关构建创建发布定义
- 添加 EF6 迁移任务。将该任务添加到版本中的环境后,您需要输入适当的参数来配置它。所有文件路径参数都应该在构建的文件系统内,它们都不用于 TFS 源代码控制路径。
您也可以查看这篇文章。
推荐阅读
- bigdecimal - 无法以大数字作为参数从 web3 调用合约函数
- php - 为什么 bindValue 将字段设置为最后一个值?
- c# - 使用三元运算符的 LINQ 选择查询
- google-cloud-platform - 谷歌 colab 与谷歌云存储数据出口
- sql - 如何在proc sql的where子句中使用宏变量
- asp.net - 从 webapp ASP.NET 打开 MS Word 文档
- python - 在分类任务期间获取隐藏层的输出
- visual-studio-code - Visual Studio Code .vscode 目录从工作区消失
- ios - 横幅通话通知,例如 iOS 中的 WhatsApp 视频通话
- web-crawler - StormCrawler 不只抓取页面的主要内容