azure-devops - 在 Azure Devops 中编写 EF6 迁移脚本
问题描述
我有一个 EF6 项目,我想为迁移生成一个脚本。在本地,我只是运行update-database - script
,但我想创建一个构建管道来为此生成一个脚本,然后是一个部署管道,当我们准备好推送到不同的环境时执行这个脚本。无论如何要在 Azure Devops Build Pipeline 中生成这样的脚本吗?
解决方案
通过首先使用复制文件任务将整个项目从构建管道复制到工件暂存目录中,我设法在我的发布管道中运行 EF6 迁移:
源文件夹:$(build.sourcedirectory)\<SolutionName>\
目标文件夹:$(build.artifactstagingdirectory)\EFMigration
然后在命令行任务中运行由“update-database”命令执行的脚本。我通过在 EF6 项目的包管理器控制台中手动运行“update-database -verbose”命令来获取脚本,复制显示的脚本并将路径调整为我复制到工件暂存目录中的路径。它应该看起来像这样:
$(System.DefaultWorkingDirectory)/<..>/drop/EFMigration/packages/EntityFramework.6.4.4/tools/net45/any/ef6.exe database update --no-color --prefix-output --assembly $(System.DefaultWorkingDirectory)/<..>/drop/EFMigration/EFM.Data/bin/Release/EFM.Data.dll --project-dir $(System.DefaultWorkingDirectory)/<..>/drop/EFMigration/EFM.Data\ --language C# --data-dir $(System.DefaultWorkingDirectory)/<..>/drop/EFMigration/EFMigration/App_Data --root-namespace EFM.Data --config $(System.DefaultWorkingDirectory)/<..>/drop/EFMigration/EFMigration/Web.config
在我的情况下,“添加迁移”命令将在提交之前手动运行,并且创建的脚手架将自动用于发布管道。您可以使用与获取“Update-Database”脚本相同的方法来获取“Add-Migration”脚本,但我没有尝试自动执行此操作。
推荐阅读
- javascript - 如何在同一个空间设置多个sideToggles?
- html - 如何强制 Instagram 应用内网络浏览器刷新页面?
- mysql - 有人可以帮助我在百里香中进行多个下拉菜单吗?
- javascript - 当我知道所有异步调用都已完成时,如何运行回调?
- c++ - 如何在 C++ 中使用 ascii 艺术将艺术打印到屏幕上
- ios - NavigationView 的 SwiftUI 自定义后退按钮文本
- c# - 更改后如何获取自动实现属性 C# 6.0 的默认编译时值?
- reactjs - 保存时 React Redux 中的引用项状态未更新
- tomcat - 在 web.xml 中添加 servlet 后,tomcat 404 未发现错误
- python - 当我尝试将 href 添加到导航栏时,Django NoReverseMatch