Redgate 比较 SDK 源代码控制源数据库

Redgate Comparison SDK Source Control Source Database

我目前正在使用 Redgate SQL 比较 SDK,并已将其设置为很好地区分 2 个数据库。

我现在想做的是能够将 sqlproj 从源代码管理与目标数据库区分开来。

我尝试使用 tfs/vsts SDK 提取 sql 文件,但没有成功。

有什么方法可以从源代码控制构建一个 sqlproj 到 dacpac,然后将其作为源数据库拉入,或者直接将 sqlproj 作为源拉入?

编辑:

我的最终目标是能够基本上比较源代码管理中的数据库版本与许多不同环境中的数据库 运行 并为差异创建 delpoyment 脚本。

我有另外几个 Redgate 工具可以完成这个(SQL 比较 & SQL 来源),但是这些只能安装在 1 个(也许最多 2 个?)设备上,我的难度在使用 Amazon RDS(在 VPC 之外无法访问端点)时,我无法将这些工具的一个集中安装连接到我的所有环境,而且我无法为每个环境购买额外的许可证。所以我试图使用比较 SDK 来尝试 "roll my own" 中间立场。

非常感谢,

您是在自动化 build/ci 系统的上下文中执行此操作吗?你提到了 VSTS,所以这通常的工作方式是这已经从源代码管理中提取了文件。一旦文件位于构建代理的工作文件夹中,您应该能够将 SDK(或 SQL 比较命令行)指向此处。请记住,sql 项目不是 Redgate 工具官方支持的数据源,尽管它在许多情况下都可以工作。

如果您可以编辑您的问题并提供一些您正在尝试解决的更高级别问题的背景知识,以防万一我们(我在 Redgate 工作)可以推荐一组更合适的工具或技术,那就太好了.

我也在 Redgate 工作,如果您想详细了解您的具体问题,请通过 dlm@red-gate.com 给我发电子邮件,我会为我们打电话。

一般来说,Redgate 建议您在下面执行的操作的过程是在版本控制中保留您希望所有数据库都拥有的规范化模式。您可以通过每个开发人员使用 SQL Source Control product to bring their changes in from SSMS as they develop them, or by using the SQL Compare 产品在冲刺结束时放入一个版本来获取该模式。

然后您可以将我们的 DLM Automation 工具与 CI 服务器结合使用,以自动为您的目标服务器创建差异报告和同步脚本。 DLM Automation 是一组 PowerShell 命令行开关和插件,适用于常见的 CI 服务器,如 TeamCity、Jenkins、VSTS、TFS 等。您还可以使用 SQL Compare Pro 命令行。

如果您的整个团队都拥有我们的 SQL Toolbelt 产品,那么您将获得在 build/release 代理上安装 DLM 自动化工具的许可,次数不限,因此您不需要额外的每个环境的许可证。