将数据库更改管理添加到持续集成场景的最佳方法是什么?我已经阅读了一些问题和答案,但它们是从 2009 年开始的,并且肯定有一些同时开发的技术和工具。
我正在使用 TFS 2010,但这不是重点。我对如何在持续集成的同时管理数据库更改的概念感兴趣。有任何想法吗?
将数据库更改管理添加到持续集成场景的最佳方法是什么?我已经阅读了一些问题和答案,但它们是从 2009 年开始的,并且肯定有一些同时开发的技术和工具。
我正在使用 TFS 2010,但这不是重点。我对如何在持续集成的同时管理数据库更改的概念感兴趣。有任何想法吗?
我会推荐带有 SQL Source and Compare 的 Red Gate 堆栈——它绝对可以为拥有一个完整的带有 sql 集成的 CI 环境大有帮助
除了 Red Gate 工具,您还可以尝试使用ApexSQL Diff和ApexSQL 版本来完成同样的事情。
这些工具中的任何一个都不会出错,如果您想要第三个选项,您可以查看 Idera 的工具。
请注意,尽管所有这些都是商业工具,但它们都有 14-30 天的试用期。
我们刚刚发布了用于 SQL Server 的数据库强制变更管理解决方案(商业解决方案)DBmaestro TeamWork。
它对真实的数据库对象(而不是与数据库断开连接的脚本)强制执行版本控制过程
它使用基线感知分析生成 sql 脚本以促进更改,该分析了解更改的性质,例如:更改应该被忽略,因为它来自不同的分支或关键修复,或者存在冲突,您必须合并过程代码。
免责声明——我在 DBmaestro 工作。
话虽如此,我鼓励您阅读资深数据库专家 Ben Taylor 对数据库强制管理解决方案的全面、公正的评论,他在 LinkedIn https://www.linkedin.com/pulse/article/20140907002729-287832-solve-数据库更改管理与 dbmaestro
我们有一个采用以下方法的新解决方案:
我们的主页更详细地解释了这个过程。它还有一个示例的链接,该示例从 Subversion 挂钩自动执行这些步骤(但这也可能来自 TFS)。提交后不久,开发人员会收到一封电子邮件,说明发布是成功还是有错误。包括 PowerScript 代码。
这个想法是,最终您将拥有一个经过全面测试的发布脚本,并且完全相同的脚本会在您的所有 pre-prod 环境中移动,并最终用于将发布应用到您的 prod 数据库。
免责声明 - 我为制作 OneScript 的公司工作。