是RedGate SQL源代码控制吗?

Nee*_*ack 14 sql-server version-control redgate

我刚刚继承了一个SQL Server数据库.我需要解决的一件事是版本控制和自动构建.

有人建议我应该认真考虑推荐RedGate SQL Compare,但我不得不承认我对它有点不安.

我的预订是......

  • 它似乎促进了使用gui工具进行数据库工作?
  • 对于实时应用程序,我更喜欢使用更改脚本,这避免了在每个Scrum周期结束时创建迁移脚本的最后一分钟恐慌,这意味着CI可以测试您的更新脚本.我看不出RedGate工具如何解决这个问题.

我的直觉告诉我要坚持使用MSBuild文件和一堆.SQL文件经过试验和测试的方法.

我很想知道是否有人有使用此工具的经验.

gbn*_*gbn 11

我们使用Red Gate生成用于部署和控制版本控制的脚本.

"部署"和"版本控制"是SQL代码的单独问题.

需要注意的重要事项:您的生产数据库是掌握所有数据的.因此,将常规副本安排到测试服务器并将其用作基准.NUnit每天晚上用基本数据生成的数据库(看到它,笑了)通常是无用的.如果你有十亿行并且需要针对它测试查询怎么办?

版本控制:您可以使用Red Gate工具生成架构作为基线,然后将其与此副本(或您的QA或其他)进行比较.Red Gate工具允许与文件夹进行比较,在我们的案例中,该文件夹受SVN控制,并在每个版本中更新.所以我们有每个对象的完整历史

部署:我们将开发脚本(也在SVN中)应用于干净的"构建"数据库,并与另一个干净的数据库进行比较.这成为我们的部署脚本.

当然这很简单.

专业版提供了一个同步和比较的API,因此您可以根据需要集成到您的工具链中.无需GUI.很明显,我们使用它来提供一些特殊用户沙箱的单击同步以及客户端代码.

正如Remus所说,对于某些操作来说,它们并非万无一失.如果您要更改1.5TB表格上的内容,我会亲切地手写我的脚本.另一个令人不快的是,Red gate的工具习惯于在相关视图上删除SCHEMABINDING,或者为简单检查约束更改而放弃udf.

我还建议阅读Martin Fowler的"进化数据库设计"以获得一些灵感


OMG*_*ies 8

我也更喜欢脚本 - 易于存储在源代码控制(CVS,Git等)中,因此您可以看到更改的时间.