2013-02-13 167 views
5

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

因为我很少使用DB端编程的项目,所以这从来没有成为一个主要麻烦(一些命名模式的文件夹中的十几个脚本没有太多手动管理),但我刚刚继承了一个项目有几百个视图和1000多个存储过程,这些从未包含在版本控制中。

我的问题是:

做别人遵循什么程序来管理他们的SQL Server代码的版本 - 有没有一个公认的,聪明或其他明显的方法,我在这里失踪?我目前正在倾向于购买上述工具之一 - 但在我这样做之前,我正在寻求社区的建议。

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

回答

1

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

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

您可能想要考虑的另一个选项是设置Visual Studio数据库项目。它将编写所有对象的脚本并提供一些部署选项。我的观点是,我们厌倦了为了我们的口味过于紧密地集成在一起 - 我们有一些关于链接数据库的命名参考,它只是不会放弃。

+0

尝试玩VS DB项目,但遇到了你所描述的问题。还尝试过AgentSVN的演示,努力让自己的工作按照我想要的方式工作(可能是试图强制它以我期望的方式工作,而不是按照预期的方式工作)。坚持一个真正的观看脚本文件夹,并从那里加载/编辑。 – Matthew 2013-02-18 17:51:51

+0

我应该补充说,应该可以将现有的存储库迁移到类似redgate的东西。我在几年前讨论了他们的技术支持的可能性: 1.你有他们的工具从你的分区创建一个新的初始仓库 2.重新构建现有的仓库以匹配与他们相同的外观 3.切换他们的工具指向你的新外观回购 – 2013-03-06 22:27:32

2

我会建议你去像redgate工具一样的东西,并以同样的方式对待你的C#源代码对待任何SQL数据库;手动跟踪ALTER语句会让你失望,因为修改的数量增加了。不能说zeus编辑工具,而是使用了redgate之一,它“正常工作” - 以及使用这样的工具就是它可以管理你的迁移脚本,这样你就可以对你的开发版本进行一系列的更改,然后生成一个更新脚本来更新你的测试数据库等,包括数据变化,这是最大的PITA手动管理。

另一件需要考虑的事情是,即使更改的次数不频繁,并且您手动跟踪ALTER语句,但如果其他人最终在同一个项目上工作,该怎么办?现在你有另一个潜在的管理不善的脚本....

无论如何,让我们知道你如何继续前进,并祝你好运!

+0

脚本在文件夹中正确修订和控制(即,我将它们编辑为源文件和SVN修订版),因此最后一个问题不是问题。当我有一些时间(和S/W预算)时,我想我会重新讨论REDHAT的工具 - 很好听从实际使用它的人。感谢您的回应 - +1! – Matthew 2013-02-18 17:54:13