我有一组编码的UI测试,每天通过VSTS运行。此测试计划的一个先决条件是将BACPAC导入SQL服务器。为了满足这个要求,我创建了一个测试方法,它使用 Microsoft.SqlServer.Dac.DacServices.ImportBacpac 方法导入BACPAC,将测试包含在测试套件中,然后通过一个测试套件执行在构建定义中运行功能测试任务。
最近,数据库已移至Azure,因此此测试失败,并显示以下消息:
Microsoft.SqlServer.Dac.DacServicesException:无法将数据导入目标,因为它包含一个或多个用户对象。应该对新的空数据库执行导入。 错误SQL0:无法将数据导入目标,因为它包含一个或多个用户对象。应该对新的空数据库执行导入。
向退伍军人提出的要求
在我提出问题之前,我想提一下,我对Azure的体验目前为零,如果我提出任何本应明显的事情,我希望你能原谅我。
问题
我有办法以编程方式将BACPAC导入Azure(类似于我现有的方法)吗?或者使用 Azure SQL数据库部署任务更好吗?或者你会推荐另一种方法吗?
答案 0 :(得分:1)
更好更简单的方法是使用Azure SQL Database Deployment task将bacpac部署到azure数据库,它可以自动添加和删除防火墙规则。
另一方面,您可以参考下面的这个主题,为您的测试机器添加防火墙规则到azure SQL服务器,或者您可以手动添加它:
Deploy Dacpac packages via power shell script to Azure SQL Server
更新(构建任务):
/p:OutDir=$(Build.ArtifactStagingDirectory)
)$(build.artifactstagingdirectory)\**\*.dacpac
)如果要在发行版中部署数据库:
构建任务:
/p:OutDir=$(Build.ArtifactStagingDirectory)
)$(build.artifactstagingdirectory)
)发布任务:
$(System.DefaultWorkingDirectory)\**\*.dacpac
)答案 1 :(得分: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