Nee*_*ack 14 sql-server version-control redgate
我刚刚继承了一个SQL Server数据库.我需要解决的一件事是版本控制和自动构建.
有人建议我应该认真考虑推荐RedGate SQL Compare,但我不得不承认我对它有点不安.
我的预订是......
我的直觉告诉我要坚持使用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的"进化数据库设计"以获得一些灵感