首先是技术性的东西:
我们正在使用VS 2008 pro并运行MS SQL 2008服务器。对于sourcecontrol,我们使用Subversion。
我们真的希望将我们的存储过程保存在subversion中,这样我们就可以知道改变了什么,等等。
然而,为了实现这一点,它必须是无缝的,否则开发人员只会忘记将提交的程序包含在提交中。
那么有什么好的解决方案吗?
我确信我们不能成为唯一有这个问题的公司: - )
答案 0 :(得分:3)
在我们公司,我们使用Team Foundation服务器为Visual Studio团队系统跟踪代码源和存储过程版本控制;存储过程的处理方式与任何其他代码源一样。
数据库不能自动同步到TFS;因此,对于您需要的每个新SP:
如果您需要修改:
当我们需要提交生产时,我们正式要求dba将新的/修改的存储过程同步到我们的生产数据库下载并应用TFS的最新版本。
可能出现的问题:
答案 1 :(得分:3)
在Visual Studio 2008中,您可以创建一个数据库项目,该项目允许您将所有存储过程和任何其他SQL语句存储在一个不错的项目中,然后可以将其存放在Subversion中。
答案 2 :(得分:2)
我目前正在使用Red-Gate的一个名为SQL Source Control的免费工具来做这件事,它运行良好,它插入SSMS。这是一个包含更多信息http://www.red-gate.com/products/SQL_Source_Control/index.htm的链接我不得不提到它目前处于测试阶段但与SVN和TFS一起使用效果很好。
答案 3 :(得分:1)
如果您正在遵循敏捷方法,我建议您在完成,完成定义中添加“不要忘记提交SP”,这样它就会成为您流程的自然部分。
答案 4 :(得分:0)
我非常喜欢Visual Studio Team Edition for Database Professionals,如果你有Visual Studio Team Edition for Developers,现在可以免费使用。它允许您在脱机模型中使用数据库对象,可以将其签入源代码控制。然后使用脱机模型自动为数据库生成部署脚本。
唯一的缺点是价格。
答案 5 :(得分:0)
我们有一个程序可以在安装/升级程序时进行任何所需的数据库版本更改。
因此,为了部署任何SQL代码,它必须包含在该程序中(在我们的例子中作为资源)。这使得自动版本控制和将代码添加到VS支持的源代码控制系统。