Sql server 2005 SQL Server版本控制?

Sql server 2005 SQL Server版本控制?,sql-server-2005,svn,git,version-control,mercurial,Sql Server 2005,Svn,Git,Version Control,Mercurial,我的开发组使用Visual Source Safe进行版本控制;这一选择最初是由于成本和它与VisualStudio的紧密集成 随着我们的存储库的发展,源代码安全已经开始显示出它的局限性,我们正在考虑转移到另一个解决方案。讨论的是Team Foundation Server、SubVIEW、Git和Myurial. 我们在很大程度上是一家数据商店,因此我们的另一个主要因素是能够轻松地为SQLServer2005/2008项目版本。这是使用源安全的好处之一,也是Team Foundation Se

我的开发组使用Visual Source Safe进行版本控制;这一选择最初是由于成本和它与VisualStudio的紧密集成

随着我们的存储库的发展,源代码安全已经开始显示出它的局限性,我们正在考虑转移到另一个解决方案。讨论的是Team Foundation Server、SubVIEW、Git和Myurial.

我们在很大程度上是一家数据商店,因此我们的另一个主要因素是能够轻松地为SQLServer2005/2008项目版本。这是使用源安全的好处之一,也是Team Foundation Server的好处——与微软SQL Server Management Studio.

集成。

我想知道是否有人使用SypRead、Git或Merialor版本对SQL Server进行版本控制,可以为这些系统中的每一个提供一些坚实的利弊,以及如何执行它们。

< P> Git和汞是唯一应该考虑的,其他2个太过时了。现代scm应该像git一样处理分支

有关git与mercurial的比较,请参见:


不过,我过去没有SSMS SCM集成的经验,但我想提到的两个系统(TFS除外)都没有。我不认为这是一个缺点,例如,git GUI是一个非常方便的工具,您会发现它比这种集成更令人愉快。这至少是我从SVN(使用Ankh进行VS集成)到Git(完全没有集成)时的情况。

TFS缺少VSS的一些功能,特别是关键字扩展。如果您没有在源文件中嵌入修订关键词信息,那么就不必担心了。

如果您认为DVCS是一种发展方向,Mercurial已经与VS集成。我们将其用于我们商店中的C++/C#项目,并且工作得很好。(OTOH,我从未使用过任何“完整”集成,因此我很乐意使用explorer扩展和/或命令行来进行详细的VC工作。)

有很多潜在的替代方案-SQL Server Management Studio(SSMS)支持与任何Microsoft源代码控制接口提供商的集成。因此,您可以将搜索范围扩大到具有MSSCI兼容提供商的源代码管理系统

在SSMS中,查看工具->选项->源代码管理,查看系统上安装了哪些提供程序插件

例如,Team Foundation Server与SQLSertualStudio的集成是由TFS MSSCCI提供程序提供的。我认为有一个CVS/Subversion的提供商(“Aigenta统一SCC”)等等

至于优点/缺点列表,我认为如果有一个兼容的提供商,你可以向更广泛的受众提出这个问题。我的主要经验是VSS、TFS和Subversion。这实际上取决于您的团队和环境。你能详细介绍一下你的环境吗

例如

  • 您是否有兴趣建立CI(持续集成)
  • 自动构建/自动版本控制
  • 支持多种环境
  • 配置管理
  • 你们队的人数是多少?可能有很多合并/分支等
  • 您是否已经建立了bug跟踪系统(您将工作项/bug跟踪作为TFS推出的一部分)

我诚实的回答是,如果可以避免的话,不要与数据库工具和SCM进行任何集成。尽可能使用文件系统。这是另一个整合层,这将是一个痛苦。小而独立的工具比庞然大物要好

我们在以下领域中一起使用Subversion和SQL 2005:

  • 我们只使用乌龟。完全没有VS/SSMS集成
  • 我们有一个“自动化一切”的原则,所以我们从不依赖GUI工具来完成工作
  • 我们将所有脚本与代码一起保存在SVN中。代码、模式和脚本一起进行版本控制
  • 架构更改按应用程序的顺序编号,即000-create-table-users.sql。我们写下每个环境中部署的最大脚本数。每个脚本执行到下一个数据库r号的迁移。部署时,我们检查源代码并运行从最后版本号到最高版本号的所有脚本
  • 任何非模式脚本(存储过程/视图)都是幂等的(可以以相同的结果执行任意次数)。它们是通过我们编写的nant插件应用的。我们每次部署时都会替换它们。别忘了刷新您的视图
  • 我们尽可能避免使用任何脚本,因为我们使用NHibernate,所以脚本版本控制的问题就更少了
从这个结构中,我们可以在任何重要的机器上的任何时间点重新创建环境和数据库

然而,我们不将其用于单元测试——我们依赖NHibernate模式生成在SQLite数据库之上完成这项工作


我们遇到的唯一的缺点是确保开发人员遵守流程。放牧猫是一个非常恰当的描述。

这可能是一个有用的工具:


它的设计便于在任何系统中进行版本控制,并以合理的方式管理升级脚本。

Visual Studio Team system 2008数据库版(代号“DataDude”)是您所需要的

它允许您以令人震惊的方式对数据库对象进行版本设置。(例如,将客户站点升级到特定版本,或在不破坏任何数据的情况下回滚到以前的版本)

在Gert Drapers的博客上查看这些功能,首先是

或者,如果你更喜欢播客,也可以一起收听DotNetRocks


我不知道在使用DataDude时,您是否仅限于使用TFS进行源代码控制——但它是VisualStudio家族中“宣传不足”的成员

我们现在向SQL源代码管理添加了VSS支持,它与SSMS集成,为数据库开发提供完全集成的源代码管理。要尝试此功能,请访问:

“Da