Deployment 使用Powershell部署到SQL Azure-是否有方法生成数据丢失警告报告?

Deployment 使用Powershell部署到SQL Azure-是否有方法生成数据丢失警告报告?,deployment,powershell,azure-sql-database,data-tier-applications,Deployment,Powershell,Azure Sql Database,Data Tier Applications,在部署到SQL Azure数据库时,我有一个关于数据层应用程序(DACPAC)升级的问题。当我们通过向导UI手动升级DACPAC时,有一个步骤可以查看数据丢失警告报告,并能够将操作报告保存到HTML文件中(请参见“查看升级计划页面”下)。“操作”列显示将运行以执行升级的操作,如Transact-SQL语句。如果关联操作可能删除数据,则“数据丢失”列将包含警告 现在,我正在使用Powershell自动化数据库升级过程,到目前为止,它运行得很好。不幸的是,我找不到方法让它生成相同的数据丢失警告报告

在部署到SQL Azure数据库时,我有一个关于数据层应用程序(DACPAC)升级的问题。当我们通过向导UI手动升级DACPAC时,有一个步骤可以查看数据丢失警告报告,并能够将操作报告保存到HTML文件中(请参见“查看升级计划页面”下)。“操作”列显示将运行以执行升级的操作,如Transact-SQL语句。如果关联操作可能删除数据,则“数据丢失”列将包含警告

现在,我正在使用Powershell自动化数据库升级过程,到目前为止,它运行得很好。不幸的是,我找不到方法让它生成相同的数据丢失警告报告

我的Powershell升级脚本摘录如下:

## Generate the database change list (database drift) and upgrade script and save them to file.
$dacChanges = $dacStore.GetDatabaseChanges($dataTierAppNameToUpgrade) | Out-File -Filepath .\DatabaseChanges.txt

## Getting the DAC incremental upgrade script for data-tier application
$dacStore.GetIncrementalUpgradeScript($dataTierAppNameToUpgrade, $nextDacType) | Out-File -Filepath .\DatabaseUpgrade.sql
GetDatabaseChanges()
生成的
DatabaseChanges.txt
输出文件并没有提供真正的信息,因此我们想知道是否有办法获得与手动执行升级向导时相同的报告文件。该报告在解决数据迁移问题时对部署团队有很大帮助,我们希望在部署到实时生产数据库时能够手动检查该报告

我们已经搜索了MSDN文档,但没有任何运气。 有人知道Powershell部署是否支持此功能吗? 这是一项在不久的将来会得到支持的计划吗

提前感谢您的帮助。

根据,默认情况下IgnoreDataLoss为false,这意味着如果检测到数据丢失,升级将失败。在.NET中,您可以处理DacActionFinished事件(http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.dac.dacstore.dacactionfinished.aspx),将在升级操作完成时激发。如果出现问题,事件arg的Error属性(http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.dac.dacactioneventargs.error.aspx)将包含详细的异常。它可能不是您想要的html报告,但它仍然会为您提供一些信息。您可以从PowerShell处理CLR事件。有关样品,请参阅

顺便说一句,事实上,问题不仅仅局限于SQLAzure。您还可以将标记修改为SQL Server,以获得进一步的建议

致以最良好的祝愿


徐明。

刚刚与DAC@Microsoft的所有者取得联系,他提出了一个解决方案:可以使用他们的托管API或通过SqlPackage.exe

SqlPackage.exe对其执行操作以生成部署报告。如果检测到可能的数据丢失问题,该问题将包含在报告中


参考资料:

谢谢徐明的回复!这很有趣,不过如果我们能在实际升级之前获得这些信息就太好了。尽管如此,这仍然非常有用,我们肯定会对此进行研究。再次感谢!