Sql server MSSQL数据库设计和版本控制的良好实践/工具是什么?

Sql server MSSQL数据库设计和版本控制的良好实践/工具是什么?,sql-server,database,versioning,Sql Server,Database,Versioning,我们与一个小型开发团队和一名在特定时间部署软件的系统工程师合作 目前,我们没有任何数据库更改的主要文档。更改在临时数据库中完成,并在系统工程师部署新版本时手动添加到生产中 我们开始使用DBDesigner Fork来创建设计并生成sqlcreate脚本,但是我们仍然不满意这个解决方案。该解决方案是不完整的,因为不可能在DBDesigner Fork中创建视图和存储过程 我们希望找到一个实践/工具来设计数据库、存储过程、视图等,并对Subversion中的更改进行版本化 创建新的软件版本时(在SV

我们与一个小型开发团队和一名在特定时间部署软件的系统工程师合作

目前,我们没有任何数据库更改的主要文档。更改在临时数据库中完成,并在系统工程师部署新版本时手动添加到生产中

我们开始使用DBDesigner Fork来创建设计并生成sqlcreate脚本,但是我们仍然不满意这个解决方案。该解决方案是不完整的,因为不可能在DBDesigner Fork中创建视图和存储过程

我们希望找到一个实践/工具来设计数据库、存储过程、视图等,并对Subversion中的更改进行版本化

创建新的软件版本时(在SVN中标记),我们应该能够为数据库创建补丁文件(例如SQL脚本)


处理上述问题的最佳方法是什么?

我们是一家价值25亿美元的太阳能制造公司,使用Visual Studio Database Edition来满足所有数据库管理和版本控制需求。这对我们来说是一个很好的工具。It版本通过TFS集成控制我们的数据库,进行模式和数据比较(如红门)、数据库验证等。我们现在离不开它。

我们使用源代码管理进行版本控制。所有数据库更改只能在脚本中进行,并作为代码分支的一部分放入源代码管理中,该分支将和该版本的其余代码更改一起投入生产。由于开发人员没有在Prod中创建或更改对象的任何权限,这对我们来说很好,因为除非在脚本中,否则您的更改不会被升级。

+1 for VS Database-即使它可能不是最好的工具,我发现它可以完成我需要的大部分工作,如版本控制、与TFS的集成,部署到开发/测试数据库等。它允许您像对待代码一样对待数据库,这是我喜欢的方式。在VS中,它只是锦上添花cake@In理智-绝对同意。我们还将数据库工件视为源代码(它们实际上就是源代码)。VSDE处理得很好。好的,VS数据库看起来不错。数据库设计应该是领先的。数据库服务器上的情况不应导致。在VS数据库中是这种情况,还是更改已同步到数据库服务器?@Bamieater-VSDE中包含的数据库架构应始终被视为“真相的来源”,而不是位于某处的物理数据库。是的,VSDE允许您将更改同步到物理数据库,并允许您将物理数据库同步回项目(非常好)。