【问题标题】:A New BI / Database project: how to take databases under version control?一个新的 BI / 数据库项目:如何将数据库置于版本控制之下?
【发布时间】:2010-08-16 03:02:41
【问题描述】:

我们正在公司启动一个新的 BI 项目。我们至少有 3 名开发人员从事数据库设计和开发工作。我们的工具包括 Sparks EA、SQL Server 2008 EE 和未确定的报告工具。什么样的工具可以用于 SQL Server 中的数据库版本控制?有哪些版本控制系统可用于数据库开发(管理数据库模式、表、存储过程等的版本)?

【问题讨论】:

    标签: sql-server database database-design version-control


    【解决方案1】:

    Visual Studio Team System 包括用于数据库源代码控制、部署、架构比较等的数据库版功能。您不一定需要工具来进行数据库版本控制,但如果您确实需要工具,那么 VSTS 是一种选择。

    【讨论】:

    • 谢谢。你说我不一定需要为数据库版本控制付出代价是什么意思。还有其他选择吗?
    • 是的。只需保存每个版本的源代码。任何源代码控制系统都会为您做到这一点。
    • 谢谢,我正在考虑为此目的使用颠覆,我们会看到。
    【解决方案2】:

    通常更容易导出一组从头开始创建数据库的脚本,然后将它们置于版本控制中。

    然后,如果您想将数据库从源代码控制升级到“版本”,您可以使用 SQL Compare 或“Data Dude”之类的工具来比较两个数据库(或创建脚本和数据库)并应用更改从一个到另一个。

    【讨论】:

    • 谢谢,但是如何实现这个“版本控制”。我在想是否有一些工具,例如在 SQL Server 或 Visual Studio 中执行此操作?
    • 您和/或您的团队可能拥有某种版本控制系统,例如 Subversion、CVS、Mercurial、Git 甚至 VSS。将脚本放在那里并用数据库的“版本”标记它们。
    • 谢谢,我们目前没有任何版本控制系统。我们正在考虑开始使用其中之一。
    【解决方案3】:

    我们在脚本中创建所有数据库更改,从不使用 GUI。然后将脚本保存在属于我们的 Subversion 存储的文件夹中,就像任何其他代码一样。由于我们的配置管理人员不会在没有脚本的情况下推动 prod,因此我们完全没有问题强制执行此操作。美妙之处在于,您将某个特定更改所需的所有脚本放在一起,而另一个更改中尚未准备好投入生产的脚本不会被意外推送。

    我们也将所有 SSIS 包存储为文件,并将配置存储在 sripts 中并以相同的方式推送它们。

    如果您想在数据库之间进行比较以确保没有遗漏任何内容,我强烈推荐 Red-gate 的 SQLCompare。

    【讨论】:

    • 非常感谢!这帮助很大。
    • 如果您正在寻找源代码控制架构对象,SQL 源代码控制是正确使用的 Red Gate 工具 (red-gate.com/products/SQL_Source_Control)。这与 SSMS 集成,支持 TFS 和 SVN 作为存储库,并与 SQL Compare Pro 兼容。但是,您必须独立保存 SSIS 包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 2012-08-10
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多