问题标签 [dacpac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1516 浏览

visual-studio-2013 - SQL Server 数据库项目结构

我开始学习用于 Visual Studio 2013 的 SSDT-BI,我们使用另一个应用程序使用的预先存在的第三方数据库(我们将添加到这个现有数据库作为我们工作的一部分)。

DACPAC 能否仅更新某些数据库对象(“如果不存在,删除并创建...”),还是必须包含整个数据库?

我基本上是在寻找替换我们现有的脚本(所有这些基本上都是“如果对象存在,则删除对象,然后创建对象”)并使用 SSDT-BI 的一些功能,如编译、源代码控制、更好的部署包等. 并且想知道在我使用的现有数据库场景下这是否可能。到目前为止,我所做的一切都导致 DACPAC 删除并重新创建了整个数据库,这不是我们想要的。

对于我们如何使用 BI 工具实现这一目标的任何帮助或见解将不胜感激。

0 投票
2 回答
633 浏览

visual-studio-2013 - 发布管理 - DACPAC 部署程序故障转移不受信任的域连接

我已经尝试使用 DACPAC Deployer 将数据库部署到位于不同域中的服务器。通过幽灵帐户建立的服务器连接,我之前使用 XCOPY Deployer 成功部署到同一台服务器。

DACPAC 部署已被拒绝,我收到以下错误消息。

安装命令\"C:\Users\rmghost\AppData\Local\Temp\ReleaseManagement\ROMEO.DB Deployer\201408121235204725703-3\sqlpackage.exe /Action:Publish /SourceFile:".dacpac" /TargetServerName:"" /TargetDatabaseName :""\" 失败,退出代码为 \"-2146232576\"。

请分享您的想法以解决此问题。

0 投票
2 回答
2304 浏览

c# - 使用 WIX 创建安装程序时执行 sqlpackage.exe(依赖 dll 很少)

我需要在使用 WIX 安装数据库时部署 dacpac。为此,我考虑使用必要的开关运行 SQLPackage.exe 命令,因此我使用二进制标记嵌入了必要的 exe 和 dll,如下所示

并使用自定义操作调用 SqlPackage.exe,如下所示

自定义操作是在“InstallFinalize”之后运行的序列,如下所示

部署 dacpac 时(即运行自定义操作),它会为程序集“Microsoft.Data.Tools.Utilities”抛出“FileNotFoundException”,该程序集是嵌入式二进制文件之一。

请就运行此 exe 所需完成的缺失步骤或添加事项提供建议。

0 投票
0 回答
101 浏览

sql-server - 如何在导出前自定义 SQL Server 数据层应用程序?

我了解数据层应用程序 (DACPAC) 是数据库的架构,它被整理成一系列 XML 文件组合成一个 zip/DACPAC 文件,到目前为止,这允许通过 SQL Server 进行更好的管理和升级,非常好。

我想从我的应用程序数据库创建一个 DACPAC,但是该数据库包含仅用于开发/测试目的的表和其他对象(例如图表),以及用户对象(无论如何都是特定于机器的)。还有一些表包含运行应用程序所需的最少数据,例如 mySettingsUserstable。

然而,DACPAC 向导不允许我从进程中排除表或对象,也不允许我包含“最小数据”——这使得它作为部署应用程序实例的一种手段对我来说显然是无用的。

如何从 DACPAC 中排除表和对象,以及如何包含数据行?

(FWIW,我希望部署到 Azure SQL,它不适用于 SSIS,这是我通常部署数据的方式)

0 投票
1 回答
921 浏览

sql - SQL Server:当引用另一个 SSDT 项目时,DacPac 会丢弃所有内容

我们有以下 SSDT 项目结构:

DBCore 项目:包括所有非 sql server edition 独有的对象。

DBStandardEdition 项目:包括所有标准版特定对象。

DBStandardedition 项目引用了带有“相同数据库”选项的 DBCore 项目。

当我直接通过 Visual Studio 将 DBStandardEdition 项目发布到我的演示服务器时,一切正常。所有标准版相关对象均已正确创建。

当我使用 Visual Studio 中的模式比较工具将演示服务器上的数据库与我的 dacpac 文件进行比较时,该工具想要删除我在 DBStandardEdition 项目中定义的所有对象。我们还有一个使用 DacServices - 类 (DacServices.Deploy) 发布 dacpac 文件的程序。该程序实际上删除了我的 DBStandardEdition.dacpac 文件中定义的所有内容。

我在这里做错了什么还是一个错误?

更新 我在我的项目设置中发现了一个问题。我已将所有数据库项目的“构建输出文件名”设置为相同的值。更改此设置后,Visual Studio 会在我的 DBStandardEdition\Bin\Release 文件夹中生成两个 DacPac - 文件。DBCore.dacpac 和 DBStandardEdition.dacpac。当我现在使用 Visual Studio 的比较工具将 DBStandardEdition.dacpac 与我的数据库进行比较时(并启用“包括复合对象(仅限数据库目标)”-选项),一切看起来都不错。新添加到 DBCore 项目的对象以“添加”列出,我的 DBStandardEdition 项目中的所有对象仍然存在。当我激活部署选项“包括复合对象...”时,一切都部署得很好。

0 投票
0 回答
214 浏览

sql-server - DacServices.GenerateDriftReport throws sql server version Conflict

I have a microsoft sql server 2014 instance with a database "myDB". In SSMS I have registered this database as Datatier application. I have installed the latest dacfx with nuget to my visual studio project. When I hit DacServices.GenerateDriftReport("myDB") it throws:

Databases registered as a DAC database must be hosted by an instance of SQL 2005 SP4, SQL 2008 SP2, SQL 2008 R2, SQL 2012 or SQL Azure.

Also the method DacServices.Unregister throws this error.

I am installing Windows Server Updates to the SQL Server machine but I don't believe this would fix it.

0 投票
1 回答
614 浏览

sql-server-2012 - 环境感知 sql 脚本

我正在使用 DACPAC 作为我的数据库部署的一部分。相同的包被部署到 dev/staging/prod 环境。我们希望能够做的是为数据库播种数据,例如在每个环境中具有不同用户 ID 的管理员用户。

如果我可以在 DACPAC(或其他)的发布配置文件中放置一个变量,那就太好了,但我想我也可以通过查看@@servername. 有没有更好的方法来实现这一点?

0 投票
1 回答
1764 浏览

sql - Sql Azure Premium - 导入 dacpac 错误“Origin.xml”

我正在尝试使用 dacpac 文件将我的数据库导入到 Sql Azure Premium 版本,几分钟后我收到了以下消息:

“服务操作过程中遇到错误。无法加载包。dacpac 包中缺少 'Origin.xml'”

我使用一个小型数据库进行了另一次导入,工作还可以。

任何想法?

谢谢。

0 投票
1 回答
1389 浏览

sql - 使用 DACPAC 创建的用户无法登录

我有一个 Visual Studio 2013 SQL 数据库项目,它创建了一个 DACPAC 文件,用于使用“部署数据层应用程序...”选项将 SQL 数据库部署到 SQL Server 是 SQL Server Management Studio (SSMS)。

作为项目的一部分,有一个安全文件夹,其中包含创建所需用户的 SQL 脚本。脚本是:

将 DACPAC 发布到 SQL Server 时,使用数据库的应用程序无法登录。在 SSMS 中查看用户属性表明数据库用户和 SQL Server 登录主体之间没有关联,这可能会阻止应用程序登录。

但是,在 SSMS 中手动逐字运行上述脚本会正确创建用户,并且应用程序可以成功登录。

为什么 DACPAC 创建的用户没有正确设置数据库映射,以及需要在脚本和/或 DACPAC 属性中执行什么操作才能使一切按预期工作。

谢谢,马丁

0 投票
1 回答
715 浏览

visual-studio-2013 - 项目和快照之间的架构比较

我使用带有 SSDT 的 Visual Studio 2013 来开发我的数据库项目。解决方案中的一些项目依赖于其他项目。我使用架构比较工具创建部署/更新脚本。我发现当前项目状态和最新项目快照之间存在差异。之后,我创建新快照。

现在我必须使用另一台计算机。当我尝试比较项目和快照时,我收到许多错误“无法解析来自名为 'SOMEPROJECT.dacpac' 的源对外部元素的引用,因为没有加载这样的源。” 我认为问题可能出在文件夹名称中 - 以前的解决方案在“d:\projects\solution name\”中,现在在“c:\solution name\”中。我无法在新计算机上使用磁盘 D:。

任何想法如何解决这一问题?