如何将现有 SQL Server 存储过程添加到源代码管理?

问题描述 投票:0回答:5

现在我们有一堆数据库服务器,其中运行着存储过程,但这些存储过程的文档记录很少,并且不存在于其他地方。

当进行更改时,没有日志,并且真的很难弄清楚为什么正在工作的东西突然失败。

我们最近转而使用 SVN 进行适当的版本控制,因此我希望将这些存储过程添加到版本控制中。

我们是一家 .Net 商店,我知道存在

Database
项目类型。这是一个好方法吗?

或者,我可以将存储过程保留为文本文件并对其进行操作,但我想知道这样做所涉及的烦人的部署步骤。

.net sql-server database svn stored-procedures
5个回答
5
投票

查看 redgate 的 sql 源代码控制。它有一个内置于 SSMS 的接口,并且可以与 SVN 集成。

http://www.red-gate.com/products/sql-development/sql-source-control/


3
投票

在 Visual Studio 中,我创建了一个空项目并向其中添加了脚本。它是我的服务器架构解决方案的一部分。现在每个脚本都在源代码控制之下。我还添加了一个文件夹结构以尝试保持理智。当应用程序完成时,我们可能会在多个服务器模式下在源代码控制下拥有近 3000 个脚本。并不是说这是最好的,但它适用于我们的项目。该解决方案还有一个实用程序,它使用 SMO 实际运行/部署所有脚本,因此所有内容都包含在一个解决方案中。随附的屏幕截图显示了一些结构供您参考......

Source Control Scripts


2
投票
在我看来,

数据库项目是一个不错的选择。您可以导入整个数据库,包括表、视图、存储过程等。Visual Studio 将使用这些信息构建数据库的内存模型。

它可以将其用于多种目的,包括确保您的存储过程正确访问表。例如,它发现我试图将整数参数插入到smallint列中。


1
投票
是的,我会推荐一个数据库项目——您可以以任一方向同步数据库元素(表/存储过程等):源文件到数据库,或数据库到源文件。

您可以首先创建一个空数据库项目,然后从现有数据库同步到您的项目,这会为您创建 .sql 创建脚本。

您也可以使用数据库项目来创建部署脚本。非常方便。


1
投票
我们使用数据库项目并取得了良好的效果。项目中存在所有 DML(3000 多个项目)。

开发人员必须在源代码管理中对 DML 进行更改并将其签入,并且只有签入的内容才会被提升/部署。

我们的源代码管理是TFS,我注意到从VS界面删除proc并不总是在源代码管理中标记要删除的proc。不知道 SVN 用它做什么。

© www.soinside.com 2019 - 2024. All rights reserved.