数据库对象的版本控制

gar*_*rik 19 source-control sql-server version-control sql-server-2008-r2

我们的开发人员正在处理的数据库太大(有很多数据库对象)。我们必须控制 db 对象的更改(更改管理)。我们公司不能有一个人只负责数据库的变化。所以我们需要一个数据库对象的源安全,类似于标准代码的版本控制,但更多地与数据库相关,可以同步数据库和脚本。什么是最好的。可靠、便宜、实用 - 选择两个:)

Car*_*est 9

ApexSQL 版本,支持 Visual Source Safe、Subversion、Team Foundation Server、SourceGear Vault 和 MSSCCI 兼容版本控制系统


Ole*_*Dok 8

  • Visual Studio 中的常用数据库/服务器项目
  • RedGate SQL 源代码管理

两者都与 TFS 和 SVN/Hg 兼容


小智 5

我们的团队使用 Visual Studio 2010 数据库项目。我们的大多数项目都依赖 MS Team Foundation Server 进行源代码控制,它无缝集成,但我最近发现它可以在其他源系统上运行(只有一点点痛苦)。我们在 Perforce 上有一个这样的项目。VS2010 的构建和部署功能运行良好,可以使用 PowerShell 自动化(例如,如果您想恢复基线以测试部署,则非常有用)。例如,如果您想要完整或差异部署目标,则可以创建不同的配置。

您还可以在部署中包含数据填充或其他脚本,这些脚本也受版本控制。可以通过签入您创建的脚本来管理数据库对象,或者您可以使用更直观的模式视图。跟踪所有依赖项。您可以在源代码控制下管理 SQL Server 数据库的各个方面,包括所有属性、文件和文件组以及权限。非常适合保持标准和实践到位。它有一个可视化的数据库差异工具,我更喜欢 Red-Gate 对这个功能的实现,但是你没有使用图形比较在 VS2010 中创建部署,随着我对 MS 构建以及它们的数量越来越熟悉,它变得没有实际意义帮助我保持我的数据库项目干净。

不幸的是,我无法在这个深度上将数据库与其他系统进行比较,以将数据库置于源代码控制之下。我已经在“开发人员纪律”方面工作了很多,但我不再认为这是一个系统,也不想再回到那个系统。也曾短暂地使用 SSMS 插件到 SVN,但那是很久以前的事了。为此,我们不得不使用 Red-Gate 来生成部署脚本。