问题标签 [database-deployment]

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 回答
39 浏览

azure-devops - 您如何为单独的应用程序和数据库部署组织 1 个 VS Team Services 版本定义?

我有 2 种不同的 Visual Studio 解决方案。1 个用于我的 asp.net Web 应用程序,1 个用于我的数据库 (dacpac)。我在 1 个发布定义下包含了所需的部署任务,以便同时发布我的 Web 应用程序和数据库。

现在,我想拥有更多的灵活性并执行以下操作;1)同时发布web和db。2) 只发布网页。3) 仅发布分贝。

我不想创建 3 个单独的发布定义以避免任何重复并尽可能重用已定义的任务。

你怎么能做到这一点?

0 投票
1 回答
1185 浏览

sql-server - SQL Server 数据库部署自动化的示例或工具

很晚了,我在 Internet 上搜索 SQL Server 数据库部署的自动化解决方案,主要是为了避免手动维护和部署用于部署的 sql 脚本的步骤。

我的情况很特殊。它不需要我维护整个数据库,而是“仅”对数据库进行自定义。让我详细说明。

至少有 3 到 4 个不同的 SQL Server 数据库属于不同的 3rd 方应用程序。我的任务是编写这些系统之间的集成(实际上是在这些许多不同的数据库之间)。

在考虑使用 SSDT(Sql server 数据工具)时,它提倡我创建一个数据库项目,所以我不确定它是否完全适合我维护“仅”数据库子集的需要(我假设 SSDT 会希望我从导入整个数据库开始,然后根据需要对其进行维护..我不想这样做)。

如果这可以通过 SSDT 实现,那么我会更好,并且如果有人可以向我指出一些操作方法,我将不胜感激。否则,是否有任何其他选项或定制解决方案可以提供帮助。

我最近花了很多时间阅读这篇Simpletalk 文章,但它似乎不是一个完全免费的解决方案。例如,它使用了一个加密的(.vbe)vb 脚本,它似乎正在完成大部分任务,但作者(出于某种原因!)没有提供 vb 脚本的源代码,这让我无法考虑..

我不确定我是否可以在此之上构建而不必担心 vb 脚本源代码不可用..

总的来说,我正在寻找一个定制的解决方案或工具,可以帮助我维护对数据库的更改并自动部署我的更改,同时添加维护数据库版本的机制。非常感谢任何帮助!

TIA。

0 投票
0 回答
57 浏览

sql-server - 如何使用 SSDT 来维护数据库子集而不是“整个”数据库的“仅更改”?

很晚了,我正在互联网上搜索一个自定义解决方案来自动化 SQL Server 数据库更改部署。我可以使用 SSDT 只维护对数据库的更改,而不是创建数据库项目并导入整个数据库吗?

我有 3 或 4 个第三方应用程序,它们有自己的 SQL 数据库。我的任务是在这些应用程序之间建立集成(实际上是在这些数据库之间)。

我所需要的只是编写一些存储过程、函数、触发器并为现有数据库创建一些新表。我可以在不将整个数据库导入数据库项目而仅从更改开始的情况下将 SSDT 用于我的任务吗?对此的任何指示都非常感谢!

TIA。

0 投票
1 回答
82 浏览

sql-server - 使用 SSDT 是否可以只维护选择性脚本/对象而不是维护整个数据库?

我是否有可能拥有一个数据库项目来“仅”维护一个选择性的 DB 对象或脚本列表,而不是导入整个/整个数据库?

我的任务是编写一些 3 - 4 个第三方应用程序之间的集成。这些应用程序有自己的 SQL 数据库。我所要做的就是添加一些新表,编写一些新的存储过程、触发器和 UDF。

以下是我正在寻找的东西:

用于更改控制、维护和部署此 DB 对象子集的自动化解决方案。(我已经在使用 TFS,所以源代码控制不是问题。)

这可以使用 SSDT 完成吗?

如果没有,还有其他开源选项吗?

0 投票
3 回答
1476 浏览

sql-server - VSTS build - 分布式环境中的增量数据库部署

我有一个使用 .net 2015 mvc 5 应用程序的 sql server 数据库。我的数据库代码是使用 SSDT 项目进行源代码控制的。我正在使用 SqlPackage.exe 使用由 SSDT 项目构建过程创建的 .Decpac 文件将数据库部署到暂存环境。这是使用 VSTS build 的 powershell 任务完成的。这样,我可以以源代码控制的方式更改数据库架构。现在的问题是关于数据库的主数据插入。

我使用一个 sql 脚本文件,该文件具有作为部署后脚本执行的数据插入脚本。该文件也是源代码控制的。

问题是,最初我们准备了插入脚本以针对第一个版本的 sprint(以 sprint n 作为基础)。但是在下一个冲刺中,如果更新一些主数据,那么应该如何更新主数据插入:

  1. 在脚本文件的最后添加新的更新/插入查询?但在这种情况下,部署后脚本将由 CI 执行,它会尝试在后续构建中一次又一次地插入数据,如果我们在该数据库的主表中进行了一些架构更改,最终将失败。
  2. 更新数据插入脚本中的现有插入查询。在这种情况下,我们也遇到了麻烦,因为在构建后事件中,整个数据将被重新插入。
  3. 为每个脚本维护单独的数据插入脚本,并将脚本引用更新到 SSDT 的构建后事件的新文件。这种方法需要手动操作并且容易出错,因为开发人员必须记住这个过程。这种方法的另一个问题是,如果我们需要在分布式服务器场中再设置 1 个数据库服务器。多个数据插入脚本会抛出错误,因为 SSDT 具有最新的架构,并且它将创建一个具有相同架构的数据库。但是较旧的数据脚本具有先前模式的数据插入(在以后的 sprint 中更改的 sprint wise db 模式)

因此,任何人都可以建议人工操作较少但可以涵盖上述所有情况的最佳方法。

谢谢鲁彭德拉

0 投票
1 回答
37 浏览

sql - Visual Studio 2015 数据库项目

我需要在数据库项目中从发布中排除一些表,主要思想是根据构建配置仅发布表的子集,如果是 Debug 我想发布所有表但如果配置是 Release 我想发布只是这些表的一个子集。

0 投票
1 回答
2165 浏览

sql-server - 当关联两个表时,你应该分别做一个复合键还是主/外键?

表示两个表之间关系的行业设计标准是什么?你应该使用复合键,还是主键和外键分开?两个选项之间是否存在性能差异?

例如,假设您有一个用户,该用户可以有零个或多个订单。您有带有属性PK UserID和的用户表Name。没有用户,订单永远不会存在。现在,这就是我的问题的关键所在......

  1. OrderID您是否遵循第一张图,其中在和之间使用了复合键UserID

  2. 或者,您是否遵循第二张图,其中没有复合键,并且 Order 仅由User 表的OrderIDwith a标识?FK UserID

ER图

0 投票
1 回答
896 浏览

asp.net-mvc - 如何在 Intranet 中部署 asp.net 网站 - 复制粘贴文件夹

我是 Web 开发的新手,并且了解如何使用 SQL 数据库创建一个网页。现在我想将我的网站部署在 localhost 服务器中,让有权访问该服务器的用户可以使用该网站。我通过在 IIS 服务器中创建应用程序在开发计算机中进行了一些搜索和部署网站,inetmgr 但是我不知道如何在生产系统中部署。请用可能有效的方法指导我,以便我可以进一步进行。部署测试

0 投票
0 回答
221 浏览

azure-devops - 带有 Always Encrypted 的 SQL 数据库上的 Azure DevOps dacpac 版本

我在 Azure 中有一个始终启用加密的 SQL 数据库(Azure 密钥库中的主密钥)来加密特定表中的数据。Azure DB 的版本为 Azure SQL 数据库 v12。

不知何故,我无法使用 Azure DevOps 发布管道将我的 dacpac DB 项目部署到其中。我正在使用“Azure SQL 数据库部署”任务版本 1。*

在发布管道执行期间,我收到一条错误消息“Microsoft Azure SQL 数据库 v12 不支持元素 MPCMK1。” MPCMK1 是已在目标服务器中创建的列主密钥(存储在密钥 azure 保管库中)。除了部署之外,加密/解密等功能都运行良好。我不明白为什么它说这个版本不支持。

我添加了发布配置文件并配置为跳过部署列主密钥、列加密密钥等,但我仍然在目标服务器中的密钥上收到此消息。

我从目标服务器中删除了密钥只是为了测试,这个错误就消失了。但这对我没有帮助,因为删除密钥需要从表和所有文件中删除加密。但这只是为了确保错误在目标上而不是在源上。

还尝试了参数 /p:AllowIncompatiblePlatform=True /p:BlockOnPossibleDataLoss=false 但没有运气。

如果有人可以帮助我,那就太好了。

0 投票
1 回答
93 浏览

sql-server - 如何从 Visual Studio 中创建的 DACPAC 项目中排除数据库触发器?

我在 Visual Studio 中有一个数据库项目,我需要从生成的 DACPAC 中排除数据库触发器,因为其中一个LockdownTriggers触发器可以防止触发器被更改——这会导致其他触发器出现问题;一旦LockdownTriggers部署,它就会自动启用。然后部署的其余部分无法尝试更改现在锁定的其他触发器。有什么方法可以防止数据库触发器被部署为 DACPAC 的一部分?或者至少 excludeLockdownTriggers或阻止它在部署结束之前启用?