我们一直在为我们的 SQL 源代码控制寻找可能的解决方案。我刚刚遇到 Red Gates SQL 源代码控制,想知道是否有人实现了它?我将下载试用版并试一试,但只是想看看其他人是否有真正的经验。
一如既往地非常感谢您的意见
--S
我们一直在为我们的 SQL 源代码控制寻找可能的解决方案。我刚刚遇到 Red Gates SQL 源代码控制,想知道是否有人实现了它?我将下载试用版并试一试,但只是想看看其他人是否有真正的经验。
一如既往地非常感谢您的意见
--S
我已经更新了下面的原始帖子,以反映最新版本的 SQL Source Control (3.0) 和 SQL Compare (10.1) 的变化。
由于这个问题是一年多前提出的,我的回答可能对你没有那么有帮助,但对于目前可能正在评估 SSC 的其他人,我想我会投入两分钱。我们刚开始使用 SQL 源代码控制 (SSC),总体而言,到目前为止我对它相当满意。但它确实有一些怪癖,特别是如果您在共享数据库环境中工作(而不是每个开发人员都在本地工作),特别是在同一数据库中的对象在开发团队之间随意划分的遗留环境中工作。
为了简要概述我们如何在组织中使用该产品,我们在共享环境中工作,我们都对同一个开发数据库进行更改,因此我们将共享数据库附加到源代码控制存储库。每个开发人员负责通过 SQL Server Management Studio (SSMS) 对数据库中的对象进行更改,完成后,他们可以将更改提交到源代码管理。当我们准备部署到 staging 时,build master(我)将数据库代码的开发分支合并到主(staging)分支,然后使用数据库的主分支存储库版本作为源和实时运行 SQL 比较staging 数据库作为目标,SQL Compare 生成必要的脚本来部署对 staging 环境所做的更改。暂存到生产部署的工作方式类似。另一个需要注意的重点是,鉴于我们与其他开发团队共享同一个数据库,我们使用 SSC 的内置功能,允许您按名称、类型等对数据库对象创建过滤器。我们手动在我们特定团队的对象上设置过滤器,排除所有其他对象,这样我们在进行部署时就不会意外提交其他开发团队的更改。
因此,总的来说,它是一个设置和使用相当简单的产品,而且它非常棒,因为您总是在 SSMS 中使用活动对象,而不是存储在单独的源存储库中的断开连接的脚本文件存在失去同步的风险. 这也很好,因为 SQL Compare 为您生成部署脚本,因此您不必担心引入错误,就像您自己创建脚本时一样。由于 SQL Compare 是一个非常成熟和稳定的产品,您可以确信它会为您创建合适的脚本。
话虽如此,但是,到目前为止,我遇到了一些怪癖:
总的来说,我对产品以及 Redgate 对用户反馈的响应以及产品的发展方向感到非常满意。该产品非常易于使用且设计精良,我认为在下一两个版本中,该产品可能会为我们提供大部分(如果不是全部)我们需要的东西。
从开发 -> 测试 -> 生产时,我使用 SQL 比较生成脚本,它为我节省了大量时间。
不过,对于源代码控制,我们使用 SVN 和 ScriptDB ( http://scriptdb.codeplex.com/ )。我主要使用 SQL 脚本的源代码控制来跟踪更改。我认为回滚数据库版本很少(如果有的话)起作用,因为在进行结构更改时数据可能已经更改。
这适用于我们当前的一些项目(最大的是 200 个表和 2000 个存储过程)。这样做的主要原因是成本,因为并非所有团队成员都必须购买 SQL Compare(除非真的需要,否则我会避免向商业项目添加依赖项)。
我们对 Red Gate 的产品进行了广泛的评估,发现了一些重大缺陷。如果您想查看谁更改了一个对象,那么没有SysAdmin 权限就无法做到这一点。产品需要查看服务器上的跟踪,这需要这些权限。我在一个 5 人以上的团队中,不知道谁有未决的更改会阻止我们使用该产品。
我刚开始为一家新公司工作,他们的所有项目都使用 Redgate SQL 源代码控制,其中包括一个庞大而复杂的项目。它与 TFS 配合使用可以很好地完成工作。在我看来,唯一的缺点是 SQL Server Management Studio 集成非常不稳定。安装工具时经常发生 SQL Server Management Studio 崩溃。