【问题标题】:How I can Create log for post deployment script in dacpac?如何在 dacpac 中为部署后脚本创建日志?
【发布时间】:2015-11-26 16:23:37
【问题描述】:

我正在使用 SQL 服务器数据库项目。要部署 .dacpac 文件,我使用带有命令行参数的 SqlPackage.exe。

使用 Action: DriftReport,我可以创建对象的日志(添加/更新/修改)。但我仍然无法为部署后脚本创建日志(插入、更新等操作)。

有没有办法为数据插入成功和失败创建报告。

【问题讨论】:

  • 您是否尝试过将输出通过管道传输到文件中?那会给你一些东西。但是,要真正捕获所有内容,您需要手动编写代码。
  • 我已尝试保存命令行输出,该输出将在执行命令发布后显示。如果任何部署后脚本失败,那么它将显示在控制台上。

标签: visual-studio-2013 sql-server-data-tools database-project dacpac


【解决方案1】:

我为实现这一目标所做的工作与彼得的评论大致相同。我得到了一个批处理文件,如下所示

sqlpackage.exe /a:publish /tcs:"the connection string" /sf:".\package.dacpac"  >"%1" 2>"%2"
FOR %%A IN ("%2") DO SET FileSize=%%~zA
if %FileSize% gtr 0 start notepad "%2"

然后我将批处理运行为:

thebatch.bat result.txt error_result.text

这个想法是将这个控制台命令的输出重定向到文件“result.txt”(通过使用“>”)并将错误消息重定向到“error_result.text”(通过使用“2>”),然后到依靠批处理文件中的 %~z 来获取文件大小并仅在出现问题时打开文件。

【讨论】:

  • Simon 说得对,需要注意的是 ">" 和 "2>",因为您需要重定向 stdout 和 stderr 以获取所有消息。
猜你喜欢
  • 2017-04-05
  • 2015-06-07
  • 1970-01-01
  • 2020-05-20
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
相关资源
最近更新 更多