SQL存储过程存储在svn中?

时间:2011-07-13 19:32:46

标签: sql svn stored-procedures

有没有办法备份/跟踪SVN中的SQL存储过程的更改或用于跟踪SQL更改的任何其他方法?我使用的是SQL 2008,不是DBA,而是负责小公司数据库。

TIA,

Brian Enderle

4 个答案:

答案 0 :(得分:4)

您可以尝试Red Gate's SQL Source ControlSQL Compare来跟踪更改。

答案 1 :(得分:2)

我们编写procs并将它们保存在Subversion中作为脚本。您签入脚本的每个版本,然后您可以轻松地查看previos版本或在它们之间进行差异。如果您希望减少格式化中不必要的差异,请获取SQL格式化工具,并让每个人在签入前以相同的方式进行格式化。

所有SQL代码都应该以这种方式处理,而不仅仅是procs。我们在Subversion中存储表格结构,视图等。当然,对于表,您可以创建脚本,然后按顺序更改每个更改的表表脚本,这样您就不会通过执行删除和重新创建来使用现有数据擦除表。我们还将插入脚本编写到查找表中,以便更容易移植到其他服务器。

答案 2 :(得分:1)

您可以将其存储在svn中,但如果您的团队成员使用不同的工具编写sql,则很难跟踪完全更改:postgresql似乎在格式化sql时特别糟糕。您可以考虑使用免费的格式化程序:Eddie Awad在此处列出了一些:

http://awads.net/wp/2005/12/12/format-your-sql-the-easy-way/

将代码提交给源代码控制取决于您如何安排项目:您的脚本可以存在于eclipse / visual studio项目的“misc”文件夹中,也可以通过TortoiseSVN直接提交给svn。

答案 3 :(得分:0)

我有两个建议(我自己都用过):

  1. 您可以使用ScriptDB将数据库架构解压缩到文件系统,然后将其提交给svn。我实际上设置了一个计划任务,它每晚调用ScriptDB,然后自动将文件夹提交给svn(它只提交实际修改过的文件)。

  2. 如果您使用的是VS2010,则可以打开数据库项目,并通过数据菜单中的架构比较选项定期与数据库同步。之后,您可以直接从VS提交tortoiseSVN或Ankh的更改。