如何同步存储过程文件&团队中的代码

时间:2015-07-05 10:11:24

标签: sql-server svn stored-procedures projects-and-solutions

我一直在研究这个问题几个小时,还在研究它。我实际上获得了大量与我需要的信息和来源无关的信息,因为我不太确定在谷歌搜索什么。

在我的公司,我们使用SVN更新和提交我们的源代码,并允许在同一项目中工作的团队中的每个开发人员彼此获取最新代码。到目前为止,这种做法没有任何问题。

我唯一关心的问题是如何在类似的方法中同步存储过程文件?

过去,我们面临的问题是忘记从其他人那里获取最新的存储过程,我们甚至不知道谁更改了哪些存储过程,并且将没有其他人最新更改的文件部署到客户端。因此,我们唯一可行的手动方法是确保我们将最新的存储过程物理文件发送给每个人进行更新,并确保他们记得更新,这不是那么实际和不安全,因为人们有时会忘记。

我们考虑过SVN,但实际上并不适合我们,因为我们没有将存储过程存储在IDE中,因为存储过程不是真正的代码文件,所以存储在IDE中并不是一个好的概念。

非常感谢有人可以建议一些良好的做法,以便在同一个项目中工作的人分享这些类型的文件。

仅供参考,我们工作的IDE是visual studio,我们使用c#.Net编写代码。

2 个答案:

答案 0 :(得分:1)

我的团队和你的团队很相似。实际上,我们管理文件夹中的所有存储过程和表模式SQL文件,该文件夹也保存在TFS / SVN中。每当开发人员想要更改存储过程时,他都应该获取最新的源存储过程文件并在SQL Server Management Studio中对其进行编辑以进行编辑。然后他需要提交存储过程文件及其代码更改。当他想要删除或添加存储过程文件时也是如此。

然后在每次部署之后,当开发人员发现存在阻止其正在进行的工作的db错误时,他将在源中找到存储过程文件并运行最近修改的SQL文件。阻止问题应该解决。

答案 1 :(得分:0)

我们将所有过程作为.sql文件存储在与使用它的源相同的文件夹中。如果添加到过程的末尾,则会自动安装这些过程以使用每个构建和版本/内部版本号来更正数据库,以便同一应用程序的不同版本可以与同一数据库一起使用(用于测试环境)。

在必须跟踪已更改的内容或更改内容时,让您的版本控制程序有很多帮助,当然也可以在正确的时间安装正确的版本。

除了程序之外,我们还将其他对象(如视图,函数,触发器,约束等)存储到版本控制中。您也可以存储表,但为此我们有一个特殊的处理,因为无法重新创建表,它需要执行alter table子句。

我们没有使用SVN,但我认为同样的基本想法也适用于它。