我可以从 dacpac 生成部署脚本吗
Can I generate a deployment script from a dacpac
我有一个 .dacpac 文件,它被 MSBuild 调用并发布到 QA 数据库进行测试。此发布失败,我从他们那里得到的错误是一条通用 "an error has occurred" 消息。我希望我可以从 dacpac 生成部署脚本并遍历它以查看问题发生的位置,并希望也能教他们如何执行此操作。
有没有什么方法可以将 dacpac 指向特定的数据库并让它生成 sql 用于更新数据库而不实际发布到数据库?
您可以使用 SqlPackage.exe。在您计算机上的名称类似于以下的目录中查找它:
C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin
请注意,它可能位于 110
、120
或 130
文件夹中。
如果您还没有 SqlPackage.exe
,可以从这里下载:https://www.microsoft.com/en-us/download/details.aspx?id=53013
如果您下载它,一定要查看下载页面的系统要求部分,找到依赖项 SqlSysClrTypes.msi
和 SqlDom.msi
,这也必须安装。
用法示例:
SqlPackage.exe /a:script /SourceFile:C:\temp\mydb.dacpac /TargetConnectionString:"Data Source=myserver;Initial Catalog=mydb;Integrated Security=true" /OutputPath:C:\temp
我有一个 .dacpac 文件,它被 MSBuild 调用并发布到 QA 数据库进行测试。此发布失败,我从他们那里得到的错误是一条通用 "an error has occurred" 消息。我希望我可以从 dacpac 生成部署脚本并遍历它以查看问题发生的位置,并希望也能教他们如何执行此操作。
有没有什么方法可以将 dacpac 指向特定的数据库并让它生成 sql 用于更新数据库而不实际发布到数据库?
您可以使用 SqlPackage.exe。在您计算机上的名称类似于以下的目录中查找它:
C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin
请注意,它可能位于 110
、120
或 130
文件夹中。
如果您还没有 SqlPackage.exe
,可以从这里下载:https://www.microsoft.com/en-us/download/details.aspx?id=53013
如果您下载它,一定要查看下载页面的系统要求部分,找到依赖项 SqlSysClrTypes.msi
和 SqlDom.msi
,这也必须安装。
用法示例:
SqlPackage.exe /a:script /SourceFile:C:\temp\mydb.dacpac /TargetConnectionString:"Data Source=myserver;Initial Catalog=mydb;Integrated Security=true" /OutputPath:C:\temp