【问题标题】:How can I do version control of Database Schema?如何进行数据库模式的版本控制?
【发布时间】:2011-09-25 08:07:42
【问题描述】:

是否可以(廉价或 FLOSS)对 SQL Server 2008 数据库架构进行版本控制?

【问题讨论】:

  • 我添加了一个指向 SO 帖子的链接,该帖子解释了通过 svn 进行版本控制...在我编辑的答案中查看

标签: sql-server sql-server-2008 schema


【解决方案1】:

这是 Jeff Atwood 在database version control 上的一篇不错的文章

您可以为此使用Team edition for database professionals

这是一个list of tools,您可以购买也可以使用:

Red Gate SQL Compare from $295.

DB Ghost from $195

SQL 变更管理器每个实例 995 美元。

SQL Effects Clarity 标准版。 139 美元起

SQLSourceSafe 129 美元起。

sqlXpress Diff 联系价格。 :-(

Embarcadero Change Manager 联系价格。 :-(

Apex SQL Diff from $399

2003 年 SQL 源代码控制 199 美元起

SASSI v2.0 professional 180 美元起

Evorex Source # 共享软件或 299 美元以上(有冲突的报告!)

编辑刚刚发现这篇解释通过svn进行版本控制的帖子:Versioning SQL Server database

【讨论】:

  • 我们尝试过——就像大多数 MS 产品一样,我想如果你的整个开发系统都设置为“微软方式”,它可以工作——但是,在实践中我们发现它非常有限而且几乎没有用。
  • 这就是我添加一个链接以指出可用于实现相同目标的工具列表的原因。
  • Red Gate SQL Compare 是一款很棒的产品。
  • Liquibase liquibase.org 可能值得一提,我刚刚玩了一下,但到目前为止我真的很喜欢它 + 它是免费的
【解决方案2】:

根据我的经验,在企业环境中没有简单的选择。

以下三种方法是主要选择(与使用的工具集无关)。

1) 将整个模式转储到文件中并将文件存储在存储库中

优点:简单

缺点:大文件 - 难以手动编辑 - 很难看到自上一个版本以来发生了什么变化 - 无法部署它,因此需要一些机制来准备开发和测试/实时系统之间的 DIFF 脚本

2) 将每个数据库对象转储到一个单独的文件中,存储在存储库中。

优点:很容易看出发生了什么变化。可以轻松地为大多数对象生成部署脚本(尽管有些事情仍然需要 DIFF 脚本,例如列定义更改)

缺点:必须以特定顺序运行脚本 - 管理该过程可能非常困难。

3) 将每个更改视为一个单独的操作,使用它自己的顺序编号的 SQL 脚本。

优点:开发人员可以轻松创建脚本,可以在每个平台上运行相同的脚本(理论上)

缺点:管理的噩梦 - 排序可能会成为一个问题,很难看到版本中发生了什么变化,或者给定对象何时发生变化。

在运行了所有 3 个选项后,我想说 2 很适合使用,但首先设置需要很长时间 - 以正确的顺序执行所有脚本需要很长时间 - 而且它仍然需要使用用于为 UAT/Live 生成​​脚本的数据库差异工具。所以我现在推荐 1 和 2 之间的混合。

【讨论】:

    【解决方案3】:

    在 Visual Studio 中为数据库创建一个数据库项目。将该项目签入库系统,例如 SVN 或 Team Foundation Server。

    【讨论】:

    • +1:比我说“提交 DDL 到版本控制(IE:CVS、SourceSafe、SVN、Git 等)”。
    • @OMG:是的,除了 CSV 和 SourceSafe。 2011 年不要使用它
    • 我可以使用现有的数据库吗?
    • 我不知道他们是否已经修复它 - 但我们在使用数据库项目时遇到了重大问题 - 请参阅这篇关于增量更新数据丢失的文章。 vitalygorn.com/blog/post/2008/01/20/…
    猜你喜欢
    • 2010-10-01
    • 2011-02-18
    • 2020-04-03
    • 1970-01-01
    • 2014-01-25
    • 2010-10-29
    • 2010-09-24
    • 2023-03-29
    相关资源
    最近更新 更多