2017-08-17 62 views
1

我有一套通过VSTS每天运行的编码UI测试。此测试计划的一个先决条件是将BACPAC导入到SQL服务器。为了达到这个目的,我创建了一个测试方法,它使用Microsoft.SqlServer.Dac.DacServices.ImportBacpac方法导入BACPAC,将测试包括在测试套件中,然后通过运行功能测试执行该测试套件任务在构建定义中。如何在自动化测试版本中使用BACPAC恢复Azure数据库?

近日数据库被转移到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 SQL数据库部署任务更好?还是有另一种方法,你会推荐?

+0

是这样,那么谷歌为你工作?您可以使用powershell \ tsql \ arm模板(至少)来执行此操作。 – 4c74356b41

+0

@ 4c74356b41谷歌确实为我工作,但该文章从未出现,尽管各种搜索条件。也许我没有使用必要的关键字。或者,也许是因为我在文章中没有提到任何关键词。而且,这似乎是一个复杂的方法来完成一项简单的任务,对于像Azure这样在Azure中没有经验的人来说,有很多东西没有意义。感谢您花时间回复。 –

+0

现在的结果是什么?你解决这个问题吗? –

回答

0
--Backup And Restoring BACPAC File In Azure Portal 
--Step :- 
1)Go to Database >>Task >>Export Data 
This Will Create A BACPAC File. 

2)connect to Azure Portal Right CLick On Database >> Import Data 
This will Import the Data Database In Azure Sql Portal 
NOTE :- Azure Not Allow to Import data If The DataBase BACPAC File Contain 
     Any Encryption Data/File. 

--=====For Blob Data in Azure Portal >>Download Microsoft Azure Storage Tools>>====== 
--Step 
--1)Create Storage Account And Credential Of Azure Account 
--2)Go to Data IN Storage Account And Import the Bacpac file 
--This will upload the BACPAC File ON Azure Portal 
+0

做笔记BACPAC文件不应该包含任何其他数据库的参考 –

+0

如果我误解了任何东西,但我得到的印象是对不起,这是一个手动方法来恢复数据库,不是吗? –

+0

@RustyWizard是这是恢复数据库的手动方法 –

1

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

在另一方面,你可以参考下面这个线程防火墙规则添加到蔚蓝的SQL服务器为您的测试机,也可以手动添加:

Deploy Dacpac packages via power shell script to Azure SQL Server

更新(建任务):

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

如果您在发布部署数据库:

构建任务:

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

发布任务:

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

我寻找程序化方法的原因是因为我目前无法访问客户的Azure门户。我会和他们谈谈,看看我能否接触到它。谢谢! –

+0

@RustyWizard我的答案中的线程使用PowerShell部署数据库,您可以参考该代码进行部署。 (注意:它需要发布配置文件,其中包含可以访问Azure SQL Server的用户标识和密码) –

+0

@RustyWizard通过这种方式,您无需访问Azure门户的权限。 –

相关问题