SqlServer存储过程和视图的版本控制/代码存储库

时间:2010-11-17 15:01:03

标签: sql-server database version-control

对于SVN或GIT等效数据库的任何建议,用于检查存储过程和视图,并提供版本控制?

我对开源/免费解决方案感兴趣,但如果您有商业解决方案,最好是低成本,请告诉我。

我在这里看到的答案是关于将整个数据库备份添加到代码存储库或比较记录,但这不是我在这里讨论的。

我想查看一个存储过程,并在知道没有其他人同时触及它的情况下进行检查。

我想看看自从我上次处理数据访问层以来对存储过程和视图所做的更改(即使对我的代码没有影响)。

3 个答案:

答案 0 :(得分:1)

我们公司使用Visual Studio Database Edition来管理我们的数据库架构(架构,而不是数据)。在这一点上,没有它我们就会迷失方向。我们的整个数据库模式由Microsoft TFS管理,并且是我们的模式的“真相来源”。它不仅包括源代码控制,还包括数据库验证,测试数据生成,重构等。

很棒的工具。

答案 1 :(得分:1)

我们使用liquibase,你可以在这里找到: http://www.liquibase.org/

它是开放和可扩展的。根据Apache 2.0许可证发布。

这是一个使用liquibase管理数据库架构更改的教程: http://bytefilia.com/managing-database-schema-changes-liquibase-existing-schema/

您应该将源代码管理中的存储库作为事实的唯一来源,并定期刷新源代码管理系统中的数据库过程(持续集成)。具有存储过程的写入/创建权限的用户应该是在其下运行的一个CI服务。这是唯一可以确保没有人在db中添加\更改对象而不是在事实来源中的方法(源代码管理)

您可以使用SVN或GIT设置liquibase,也可以设置任何JDBC数据库,以及SQL Server或大多数其他数据库。

答案 2 :(得分:0)

也许不完全是你想到的 - 但值得阅读这篇文章: http://www.codeproject.com/KB/architecture/Database_CI.aspx 或谷歌搜索“连续数据库集成”。

一般来说,由于可以在文本中定义模式,因此可以使用任何源代码存储库来存储它。您可能真正需要的是知道您当前正在查看的版本,无论是旧版本还是新版本,以及发生了哪些更改。 TFS解决方案为您提供了很多,但您也可以自己动手 - 尽管您可能需要编写在各种环境中管理数据库更改的脚本。