Azure devops 在Azure Devops中为EF6迁移编写脚本
我有一个EF6项目,我想为迁移生成一个脚本。在本地,我只运行Azure devops 在Azure Devops中为EF6迁移编写脚本,azure-devops,continuous-integration,entity-framework-6,entity-framework-migrations,build-pipeline,Azure Devops,Continuous Integration,Entity Framework 6,Entity Framework Migrations,Build Pipeline,我有一个EF6项目,我想为迁移生成一个脚本。在本地,我只运行updatedatabase-script,但我想创建一个生成脚本的构建管道,然后创建一个部署管道,当我们准备推送到不同的环境时执行该脚本。是否在Azure Devops构建管道中生成这样的脚本?对于此问题,您可以尝试 此任务允许构建/发布提供数据库连接参数,并针对数据库执行Entity Framework 6迁移 为了完成此任务,您必须采取以下步骤: 将项目生成到输出文件夹并包含migrate.exe 实体框架6附带的可执行文件 创
updatedatabase-script
,但我想创建一个生成脚本的构建管道,然后创建一个部署管道,当我们准备推送到不同的环境时执行该脚本。是否在Azure Devops构建管道中生成这样的脚本?对于此问题,您可以尝试
此任务允许构建/发布提供数据库连接参数,并针对数据库执行Entity Framework 6迁移
为了完成此任务,您必须采取以下步骤:
通过使用“复制文件”任务,首先将整个项目从构建管道复制到工件暂存目录,我成功地在发布管道中运行了EF6迁移: 源文件夹:
$(build.sourcedirectory)\\
目标文件夹:$(build.artifactstagingdirectory)\EFMigration
然后在命令行任务中运行由“更新数据库”命令执行的脚本。
我通过在EF6项目的包管理器控制台中手动运行“updatedatabase-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
$(System.DefaultWorkingDirectory)//drop/EFMigration/packages/EntityFramework.6.4.4/tools/net45/any/ef6.exe数据库更新--无颜色--前缀输出--程序集$(System.DefaultWorkingDirectory)//drop/EFMigration/EFM.Data/bin/Release/EFM.Data.dll--项目目录$(System.DefaultWorkingDirectory)//drop/EFMigration/EFM.Data \--语言C#--Data dir$(System.DefaultWorkingDirectory)//drop/EFMigration/EFMigration/App_Data--根命名空间EFM.Data--config$(System.DefaultWorkingDirectory)//drop/EFMigration/EFMigration/Web.config
在我的例子中,“addmigration”命令将在提交之前手动运行,并且创建的scaffold将自动在发布管道中使用。您可以使用与我获取“更新数据库”脚本相同的方法来获取“添加迁移”脚本,但我没有尝试将其自动化。您尝试了什么?你做了什么研究?什么不起作用?不能在命令行中使用dotnet ef命令,因为它不是一个核心项目。我在网上找不到任何关于在microsoft托管的vm上运行与package manager控制台相当的人的信息。migrations.exe之类的东西不起作用,因为它们不生成脚本。@Ashley Edds无法获取您的最新信息,解决方法对您有帮助吗?或者,如果您有任何问题,请随时在这里分享。这只是EF Core的吗?我遇到问题的项目是EF6,dotnet ef migrations脚本未作为命令行任务使用。您可以尝试实体框架迁移扩展,此扩展支持EF6。