问题标签 [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 回答
3015 浏览

c# - 在不部署数据库属性的情况下部署通过代码 dacpac

我有一个 dacpac 文件,我正在使用 DacServices 库通过应用程序部署该文件。我有以下代码来做到这一点:

问题是,使用此代码,目标数据库始终将其恢复模式更改为“完整”,这是在 SSDT 数据库项目(生成 dacpac)中设置的内容。

我们部署的各种目标数据库使用各种数据库属性,我们不知道目标数据库的恢复模型。有些使用简单,有些使用完整——我们不想改变它。

如何更改此代码,使其不对目标数据库属性进行任何更改?我已经尝试取消勾选数据库项目中的“部署数据库属性”设置,但上面的代码似乎覆盖了它。

0 投票
2 回答
3741 浏览

powershell - PowerShell 使用 **DacServices** 和 SQLCMD 变量来部署 DACPAC

在 PowerShell 中,我使用Microsoft.SqlServer.Dac.DacServices和 Microsoft.SqlServer.Dac.DacDeployOptions 来部署/更新数据库 DACPAC。我遇到的问题是找到设置包所需的 SQLCMD 变量的位置。

缩略样本

我知道我可以用 SqlPackage.exe 很好地输入这些,也许这就是我应该做的。但是,在文档或 web grok 中,我找不到使用 SQLCMD 变量作为选项的 DacServices 使用示例——SQLCMD 变量作为我项目 DACPAC 的必需参数。

0 投票
4 回答
15209 浏览

sql-server-data-tools - 创建发布预览时出现 SSDT 发布错误

我正在使用 Visual Studio 2013 来管理包含我们数据库架构的 .sqlproj 文件。该模式已成功部署数十次。

尝试发布到特定目标数据库时,“创建发布预览”步骤似乎失败,但没有给出错误。预览的输出包括一些预期的警告:

  • 列 {...} 正在被删除,可能会发生数据丢失
  • 如果执行此部署,对 {...} 的更改可能会在 {...} 中引入运行时错误
  • 此部署在执行期间可能会遇到错误,因为对 {...} 的更改被目标数据库中 {...} 的依赖项阻止

我已取消选中“如果可能发生数据丢失,则阻止增量部署”。

预览会停止,并且不会生成任何脚本。

0 投票
1 回答
263 浏览

sql-server - 使用 dacpac 获取 T-SQL 输入和输出?

FSharp.Data.SqlClient 依赖于sys.sp_describe_first_result_set发现查询结果集的架构。问题是这需要在设计/构建时连接到 SQL Server 数据库。是否可以从 a 获取此信息.dacpac数据层应用程序声称“启用声明式数据库开发”。

FSharp.Data.SqlClient

有一些库可以读取 dacpac 及其内容和 T-SQL AST。我认为输入和输出类型可以从该信息中得出。

从声明性模型中导出输入和输出列表是否可能/可靠?有记录功能请求的好地方吗?:-)

0 投票
1 回答
3029 浏览

dacpac - 使用 SqlPackage 发布 dacpac 时覆盖 DefaultDataPath 和 DefaultLogPath 变量

环境:

  1. 使用 Visual Studio 2013 Update 4 中的 SQL Server 数据库工具创建用于发布数据库的 DacPac。
  2. 使用 TFS 构建来构建和删除数据库项目。
  3. 使用 SqlPackage 版本将 dacpac 发布到 SQL Server 2012。

使用 SqlPackage 操作“发布”,部署脚本是根据目标数据库的默认值使用以下变量生成的:

:setvar DefaultDataPath "H:\YourServerDefault"
:setvar DefaultLogPath "H:\YourServerDefault"

我想覆盖这些位置以登陆我们配置了一些外部加密的特定目录对。

我试图以几种方式覆盖这些 SQLCMD 值:

  1. 在命令行上覆盖:

    SQLPackage /Action:Publish /SourceFile:./Db.dacpac /Profile:./MyProfile.publish.xml /Variables:DefaultDataPath=H:\MyNewLocation

  2. 在发布配置文件中添加覆盖(下面的代码段):

    <ItemGroup>
      <SqlCmdVariable Include="DefaultDataPath ">
        <Value>H:\YourServerDefault</Value>
      </SqlCmdVariable>
    </ItemGroup>

虽然我可以使用任何一种技术来覆盖我自己定义的 SQLCMD 变量,但是像 Def​​aultDataPath 和 DefaultLogPath 这样的内置变量会被忽略。

使用 SqlPackage 发布时有没有办法覆盖这些值?

0 投票
2 回答
1244 浏览

sql-server - SQL Server 项目视图引用来自不同数据库的表

我正在将数据库模型转换为 SQLModel,以便我们可以开始使用 dacpac 进行部署。我已经用其他一些数据库完成了这项工作,但没有一个引用外部数据库。我有一个问题,即几个视图和存储过程引用来自同一服务器上不同数据库的表。对于存储过程没有错误,因为过程不需要在运行时创建表。但是对于我得到构建错误的视图

包含对对象的未解析引用。对象不存在或引用不明确

我一直在尝试找出一种方法来使其工作,而不必拥有第二个具有适当字段的项目或引用不同的 dacpac。我的同事建议尝试使用同义词,但这也没有解决问题。

任何帮助将不胜感激。

0 投票
1 回答
1312 浏览

continuous-integration - 与 ssdt 的持续集成

因此,我一直在查看 sql server 数据工具 (ssdt) 并看到一些信息表明可以与 Microsoft 数据库项目进行持续集成,我只是想知道是否有人实际上在实践中这样做。

dacpac 方法看起来非常吸引人,乍一看似乎可行但不确定。查看带有最新 ssdt 的 Visual Studio 2013。

谢谢!

0 投票
2 回答
1519 浏览

sql-server - 使用 MSDeploy 发布 DACPAC 文件,部署后脚本中的 UTF8 字符丢失

我有一个在 Visual Studio 2013 中为 SSDT 项目构建的 DACPAC 文件。这个 SSDT 项目定义了一个部署后脚本,旨在将一些静态数据合并到已发布的表中,其中一条数据包含版权符号。

现在,当我通过 Visual Studio 发布数据库时,版权符号被保留,并正确合并到目标表中。当我使用 MSDeploy 发布相同的数据库(具有相同的 dacpac 和发布配置文件)时,版权符号将作为“?”合并到目标数据库中。象征。同样,当我使用Action:Script而不是Action:Publish,生成的 SQL 脚本包含一个“?” 而不是版权符号。

似乎 Visual Studio 生成的脚本是 UTF8 编码的,但被烘焙到 dacpac 中的脚本会丢失 UTF8 编码。有没有人对如何解决这个问题有任何想法?

0 投票
1 回答
1035 浏览

sql-server - 将 DACPAC 部署到 SQL Server - 创建数据库失败

我正在尝试将在 Visual Studio 2012 数据库项目中创建的新数据库发布到我们的 SQL Server 2012 环境。我可以转到服务器并右键单击“数据库”并创建一个没有问题的新数据库,但是当我尝试发布我的数据库时,我收到一个错误,即 CREATE DATABASE 权限在数据库中被拒绝master

有谁知道为什么我可以直接在服务器上创建它,但在尝试从 Visual Studio 发布时却不能?

谢谢,莱斯利

0 投票
2 回答
820 浏览

release-management - 发布管理配置 DACPAC 变量

我正在尝试在我们的一个存储过程中配置变量(令牌),该存储过程是 DACPAC 项目的一部分。我试图以与配置文件相同的方式执行此操作。IE

使用 ext 令牌创建一个重复文件。将要替换的项目替换为TOKEN_NAME。在 RM 中为组件创建一个变量。但是,这似乎不适用于 DACPAC 解决方案,并且变量不会被替换。

这可能与 DACPAC 项目有关吗?如果不是,我可以采取什么方法在存储过程中添加可配置项?

如果这是可能的,我哪里错了?