【问题标题】:Version Control / Code repository for SqlServer stored procedures and viewsSqlServer 存储过程和视图的版本控制/代码存储库
【发布时间】:2017-02-01 03:57:48
【问题描述】:

对于用于检查存储过程和视图进出并提供版本控制的 SVN 或 GIT 等效数据库有什么建议吗?

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

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

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

我想看看自上次我在数据访问层工作以来对存储过程和视图进行了哪些更改(即使对我的代码没有影响)。

【问题讨论】:

    标签: sql-server database version-control


    【解决方案1】:

    我们公司使用 Visual Studio 数据库版来管理我们的数据库架构(架构,而不是数据)。在这一点上,如果没有它,我们就会迷失方向。我们的整个数据库架构由 Microsoft TFS 管理,并且是我们关于架构外观的“事实来源”。它的功能远不止源代码控制,还包括数据库验证、测试数据生成、重构等。

    很棒的工具。

    【讨论】:

    【解决方案2】:

    我们使用 liquibase,您可以在此处找到: http://www.liquibase.org/

    它是开放且可扩展的。在 Apache 2.0 许可下发布。

    这里是关于使用 liquibase 管理数据库模式更改的教程: http://bytefilia.com/managing-database-schema-changes-liquibase-existing-schema/

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

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

    【讨论】:

      【解决方案3】:

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

      广义上讲,模式可以在文本中定义,任何源代码存储库都可以用来存储它。您可能真正需要的是知道您当前正在查看哪个版本,它是否比生产中的版本旧或新,以及何时发生了哪些变化。 TFS 解决方案为您提供了很多这样的功能,但您也可以自行开发 - 尽管您可能需要编写脚本,以在各种环境中管理数据库更改的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 2012-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        相关资源
        最近更新 更多