gpt4 book ai didi

c# - 在自动化测试构建期间如何使用 BACPAC 恢复 Azure 数据库?

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:29 29 4
gpt4 key购买 nike

我有一组编码的 UI 测试,每天通过 VSTS 运行。此测试计划的先决条件之一是将 BACPAC 导入到 SQL Server。为了满足这一点,我创建了一个测试方法,该方法使用 Microsoft.SqlServer.Dac.DacServices.ImportBacpac 方法导入 BACPAC,将测试包含在测试套件中,然后通过构建定义中的运行功能测试任务。

最近数据库已移至 Azure,因此此测试失败并显示以下消息:

Microsoft.SqlServer.Dac.DacServicesException: Data cannot be imported into target because it contains one or more user objects. Import should be performed against a new, empty database. Error SQL0: Data cannot be imported into target because it contains one or more user objects. Import should be performed against a new, empty database.

对退伍军人的请求

在回答我的问题之前,我想提一下,我目前对 Azure 的体验为零,如果我问任何应该显而易见的问题,希望您能原谅。

问题

有没有办法以编程方式将 BACPAC 导入到 Azure(类似于我现有的方法)?或者使用Azure SQL 数据库部署任务是一个更好的主意?或者您有其他推荐的方法吗?

最佳答案

更好、更简单的方法是使用 Azure SQL Database Deployment task将bacpac部署到azure数据库,它可以自动添加和删除防火墙规则。

另一方面,您可以引用下面的线程为您的测试机添加防火墙规则到 Azure SQL Server,也可以手动添加:

Deploy Dacpac packages via power shell script to Azure SQL Server

更新(构建任务):

  1. 用于构建数据库项目的 Visual Studio Build 任务(MSBuild 参数:/p:OutDir=$(Build.ArtifactStagingDirectory))
  2. Azure SQL 数据库部署任务(DACPAC 文件:$(build.artifactstagingdirectory)\**\*.dacpac)

如果您要在版本中部署数据库:

构建任务:

  1. 用于构建数据库项目的 Visual Studio Build 任务(MSBuild 参数:/p:OutDir=$(Build.ArtifactStagingDirectory))
  2. 发布构建工件(发布路径:$(build.artifactstagingdirectory))
  3. 将发布工件链接到该构建

发布任务:

  1. Azure SQL 数据库部署任务(DACPAC 文件:$(System.DefaultWorkingDirectory)\**\*.dacpac)

关于c# - 在自动化测试构建期间如何使用 BACPAC 恢复 Azure 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728248/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com