问题标签 [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 投票
3 回答
15364 浏览

visual-studio - DACPAC 代表什么?

在 Visual Studio 2012 中,我们调用了新的项目类型SQL Server Database Project,编译后将创建一个 .dacpac 输出文件。

该术语的 Google 会将其链接,Data-tier Application但我无法将此名称与 DACPA 和 C 链接?

代表什么dacpac

0 投票
2 回答
26861 浏览

publish - 如何通过 SSDT 的 SQLPackage.exe 将 DACPAC 文件发布到 SQL Server 数据库项目?

我在这里使用 SSDT for Visual Studio 2012并使用其命令行工具SQLPackage.exe发布 .dacpac 文件。

我想将其发布到SQL Server database project. 我正在尝试在本指南中使用参数,但找不到方法。

我怎样才能做到这一点?

0 投票
3 回答
3789 浏览

sql-server - 通过 Powershell 部署 dacpac 导致错误:“无法确定域的身份”

有没有其他人遇到过与下面描述的类似的问题?

我在使用 Powershell 部署 SQL Server 2012 dacpac 数据库升级时遇到问题。详细情况如下:

它是为 sql server 2012 构建的 dacpac 文件,我正在尝试通过以管理员身份登录时从命令行运行的 Powershell 将其应用于 sql server 2012 数据库。

使用“4”参数调用“部署”的异常:“无法确定域的身份。” 在 ... so.ps1:17 char:8 + $d.Deploy($dp, $TargetDatabase,$true,$DeployOptions)

编辑后的脚本(日志和文字已更改)如下:

以下是一些支持信息:

  1. Dac 框架版本为 11.1
  2. 该脚本在命令行上运行时会引发错误:
    即。Powershell -File databaseupgrade.ps1
    但在Powershell集成脚本环境中运行时没有
  3. 其他 dacpacs 的命令行也可以使用类似的脚本。

网络研究可能表明这可能与 dacpac 的大小有关。工作的都比不工作的小,这个链接提到了一个 1.3mb 的数字,失败的 dacpac 的文件大小刚刚超过。如果有人可以确认这是问题所在,您还可以提出解决方案吗?

更新 以下脚本表现出相同的行为,即。在 PS Ide 中工作而不是从命令行。

0 投票
4 回答
11906 浏览

c# - DacPac 在导出或导入时排除用户和登录

我正在做一些自动化操作,并且正在将一些 10-15 个旧的、古怪的脚本重写为一个简单的单元,它可以:

  1. 生产环境从MsSql2012导出数据库方案
  2. 开发环境导入数据库方案到MsSql2012

我使用Microsoft.SqlServer.Dac执行此操作,我可以在其中导出/导入 dac 包。

它工作得很好:),但是在完成了我所有的 TDD 和测试之后,是时候做真正的事情了,结果我完全错过了我们在工作中拥有 2 个域的情况。

这意味着当我在开发环境中导入 dacpac 时出现错误,因为我们的 2 个域没有完全的 2 路信任,当然数据库有来自这两个域的用户。特别是生产域用户。我可以看到 3 个可行的解决方案:

  1. 在环境之间获得完全信任。但这不会发生,因为我的工作实施了高水平的安全性。
  2. 导入没有用户的 dacpac。
  3. 在没有用户的情况下导出到 dacpac。

我已经阅读了文档(当然这是模糊的),试图找到一组可以实现 2)或 3)的选项。我测试了很多组合,但没有一个会起作用。dac pac 导入不断尝试创建用户并失败,因为无法在开发环境中验证生产用户。

我使用 Deploy 和 Extract 来导出/导入。可以在此处找到不同的选项:

  1. 提取:http ://technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacextractoptions.aspx
  2. 部署:http ://technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacdeployoptions.aspx

我没有找到有效的组合,我什至阅读了表明它是 DacPac 中的错误的帖子。但我不确定。我现在正在研究的最后一个选项是使用 GenerateScript 方法,该方法有望强制排除用户/登录名,但我担心它也不起作用。请参阅 ( http://technet.microsoft.com/en-us/library/hh753526.aspx )。

问题: 如何在导出或导入中从我的 dacpac 中排除用户/登录?

更新

当前提取设置:

当前部署设置:

更新

到目前为止,一切都指向一个丑陋的解决方案。

使用 SQLCMD 的原因是生成的脚本显然不是纯 tsql,而是使用 ':setvar' 的东西,据我所知,只有 SQLCMD 可以处理。来吧MS...

同样,如果有人知道在 C# 中执行此操作的更好方法,或者知道 DacPac 程序集的错误修复/更新,请分享。:)

更新

我发现 IgnorePartitionSchemes 之类的东西也不起作用。似乎命名空间 Microsoft.SqlServer.Dac 不仅有一点问题,而且非常有问题或缺乏实现。

0 投票
2 回答
1973 浏览

tfs - 在 TFS 构建中,项目构建失败,因为未找到引用项目输出中的链接文件

背景

在 Visual Studio 2013 中,针对 TFS 2012 实例,我的解决方案中有 2 个项目:

  1. .sqlproj 数据库项目(“项目 D”)。该项目输出一个 .dll 和一个 .dacpac 文件。
  2. 包含对数据库项目的项目引用的 WPF 项目(“项目 W”)。

项目 W 的构建输出文件夹必须包含来自项目 D 的 .dll 和 .dacpac 文件——除了它自己的 .exe。正如预期的那样,项目引用只会将项目 D 中的 .dll 复制到项目 W 的输出文件夹中。为了也获得 .dacpac 文件,我在项目 W 中包含一个链接文件引用,指向来自项目 D 输出的 .dacpac 文件。

问题

这在 Visual Studio 中运行良好,但在 TFS 构建中失败,并出现以下错误:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (3686):无法复制文件“d:\TfsBuilds\2\...\ProjectD\bin\debug\ProjectD.dacpac “因为没有找到。

我尝试过的事情(不成功)

类似的问题,例如thisthis,有不同的原因,并不能帮助我解决问题。

解决方案:

  1. 控制二进制输出文件夹的文件夹结构,或
  2. 将解决方案构建的所有输出合并到一个文件夹中

仍然失败,因为在每种情况下,项目 D 的构建输出(包括 .dacpac 文件)都被放置在构建代理的文件夹下在放置文件夹中,而项目 W 的链接文件引用期望 .dacpac 文件位于文件夹中在项目 D 的源文件下在构建代理的映射工作空间内,相对于项目 W(即“..\ProjectD\bin\debug\ProjectD.dacpac”。)(为准确而编辑的段落。)

问题

如何在此特定场景中配置我的解决方案/项目,以便它们在 Visual Studio 和 TFS Build 中都工作?

(在我看来,理想的情况是如果有某种特殊的“项目引用”可以获取引用项目的所有输出,而不仅仅是 .dll。)

0 投票
0 回答
136 浏览

f# - DacPac 文件是否有 F# 类型提供程序

我想知道是否存在可以绑定到 dacpac 文件的 F# 生成类型提供程序,该文件的行为类似于 DbmlFile 类型提供程序,但 Visual Studio 数据库项目输出除外。

我想要实现的是使用 F# 类型提供程序作为我的 C# 项目的 DAL 代码生成工具。我想我可以通过将 dacpac 同步到数据库并使用 SqlDataConnection 类型提供程序来实现相同的结果,但如果可以消除对数据库的需求,那就太好了。

0 投票
1 回答
311 浏览

sql-server - 数据层应用程序可以与手动管理的数据库共存吗?

我们有一个使用自定义版本控制的大型生产数据库,允许在架构更改时进行无缝升​​级(每个更改脚本都有版本)。一切正常。

我们可以在现有数据库中并行使用数据层应用程序编程模型吗?我们想尝试 DAC 方法,而无需将我们的数据库转换为 Data-Tier 应用程序。在模式级别将数据层应用程序与数据库的其余部分隔离是理想的。假设我们有三个模式,dbomydac。我们希望继续手动管理dbomy并使用 dacpacs 自动迁移dac模式中的所有内容。

我们已经尝试了一些测试,似乎数据层应用程序框架不喜欢竞争——它将超出其范围的对象检测为“手动更改”,并尝试在导入时删除它们。有没有办法改变这种行为?

0 投票
0 回答
94 浏览

sql-server - 为什么“DAC”表示“数据层应用程序”?

这个问题很简单。我已经用谷歌搜索了它,但我找不到任何与这些术语相关的东西。我的意思是,“C”从哪里来?

有人有提示吗?

0 投票
2 回答
9889 浏览

sql-server - 如何让 DACPAC 只更新一个模式?

我有一个带有 *.sqlproj 项目的 VS2013 解决方案,其中包含特定于此解决方案的对象。问题是这对于其他项目来说也是常见的数据库。

我的问题是自动将我的架构中的更改部署到数据库而不影响其他对象。默认情况下,DACPAC 会更新我不需要的整个数据库。

我试图编写部署贡献者http://msdn.microsoft.com/en-us/library/dn268597(v=vs.103).aspx但似乎没有办法将它放在解决方案文件夹中,因为它必须放在 SQL Server 的 Program Files 子文件夹中。

我使用 Bamboo 创建部署包,应用程序托管在带有 Azure SQL 数据库的 Microsoft Azure 上。

有什么方法可以使用 DACPAC 或其他自动方式仅在我的模式中部署数据库更改?

0 投票
1 回答
4143 浏览

powershell - 调用新对象时,构造函数上的 Microsoft DacServices Powershell 错误

我正在尝试运行以下 Powershell 脚本:

但是,当它运行时,我收到以下错误:

我正在尝试为自动数据库部署运行它,但无法克服这个奇怪的错误。我已经将我的执行策略设置为远程签名并将我的 Powershell 运行时版本更新为 .NET 4.0。想不出还有什么问题。

任何帮助将不胜感激!