将存储过程提交到SVN存储库

时间:2013-02-13 23:26:36

标签: sql-server svn ssms

我目前的C#项目开发环境是Visual Studio,带有SQL Server数据库,并使用VisualSVN连接到我的SVN存储库。为了管理我的存储过程,视图等的修订,我将ALTER脚本保存到我的SVN客户端监视的文件夹中,以便将它们包含在存储库中。

我已经查看了一些(现在较旧)的帖子(例如How to keep Stored Procedures and other scripts in SVN/Other repository?Is there a SVN plugin for SQL Server Management Studio 2005 or 2008?),并看到了对这些工具的推荐:http://www.red-gate.com/products/sql-development/sql-source-control/http://www.zeusedit.com/agent/ssms/ms_ssms.html

由于我很少使用进行大量数据库端编程的项目,这从来就不是一个主要的麻烦(一个文件夹中的十几个脚本有一些命名方案并不需要手动管理),但我刚刚继承了一个项目从未包含在版本控制中的几百个视图和1000多个存储过程。

我的问题是:

其他人在管理SQL Server代码版本控制时遵循了哪些流程 - 我在这里缺少一个可接受的,聪明的或其他明显的方法吗?我目前倾向于购买上述工具之一 - 但在我这样做之前,我正在寻找社区的建议。

我意识到这可能会导致工具推荐而不是代码解决方案,但会发布到SO,因为我认为这是适合人群的问题。

2 个答案:

答案 0 :(得分:2)

我建议你使用类似redgate工具的东西,并以与处理C#源代码相同的方式处理任何SQL数据库;随着修改次数的增加,手动跟踪ALTER语句会让你失去声音或者更晚。但是你不能使用zeus编辑工具,而是使用了redgate,它“只是工作” - 以及使用a的另一个好处这样的工具是它可以管理你的迁移脚本,这样你就可以对开发版本进行一系列的更改,然后生成一个更新脚本来更新测试数据库等,包括数据更改,这是人工管理最大的PITA

另一件需要考虑的事情是,即使更改的次数很少,并且您通过手动跟踪ALTER语句而逃脱,如果其他人最终在同一个项目上工作会怎么样;现在你有另一个潜在的错误管理变更脚本......

无论如何,请告诉我们你是如何成功的,祝你好运!

答案 1 :(得分:1)

我一直在维护一个包含大约800多个db对象的数据库。我们总是将数据库对象编写为如您所述的svn监视文件夹。我们遇到过这种方法的一些问题,主要是人们忘记编写新的或修改过的对象的脚本。在一天结束时,这对我们的项目来说并不是一个大问题,但你的可能会有所不同。

我们已经研究了几种工具,但他们总是假设你从头开始,我们有将近10年的历史,我们希望保留。最后,我们最终回到了基于文本的手动解决方案。它既便宜又简单。

您可能想要研究的另一个选项是设置Visual Studio数据库项目。它将编写所有对象的脚本,并提供一些部署选项。我的意见是,为了我们的口味而过于紧密地整合它已经累了 - 我们对链接数据库有一些命名参考,它们不会放弃。