是否有(Cheap或FLOSS)对SQL Server 2008数据库架构进行版本控制?
答案 0 :(得分:7)
以下是Jeff Atwood在database version control
上发表的精彩文章您可以将Team edition for database professionals用于此目的
以下是您可以购买的list of tools,也可以使用:
Red Gate SQL Compare from $295.
SQL Change Manager每个实例995美元。
SQL Effects Clarity standard ed。来自$ 139
SQLSourceSafe来自$ 129。
sqlXpress Diff联系价格。 : - (
Embarcadero Change Manager联系价格。 : - (
SQL Source Control 2003起价199美元
SASSI v2.0 professional来自$ 180
Evorex Source#shareware或$ 299 +(相互矛盾的报告!)修改刚刚发现这篇文章通过svn解释版本控制:Versioning SQL Server database
答案 1 :(得分:1)
在Visual Studio中为数据库创建数据库项目。将项目检入库系统,例如SVN或Team Foundation Server。
答案 2 :(得分:1)
根据我的经验,在企业环境中没有简单的选择。
以下三种方法是主要选择(无论使用何种工具组)。
1)将整个模式转储到文件中并将文件存储在存储库
中
PROS:轻松
缺点:大文件 - 难以手动编辑 - 很难看到自上一版本以来发生的变化 - 无法部署它所以需要一些机制来在Dev和Test / Live系统之间准备DIFF脚本
2)将每个数据库对象转储到一个单独的文件中,存储在存储库中。
PROS:很容易看出发生了什么变化。可以轻松地为大多数对象生成部署脚本(尽管有些事情仍然需要DIFF脚本,例如列定义更改)
缺点:必须按特定顺序运行脚本 - 管理该过程可能非常困难。
3)将每个更改视为一个单独的操作,使用它自己的顺序编号的SQL脚本。
PROS:开发人员可以轻松创建脚本,可以针对每个平台运行相同的脚本(理论上)
缺点:要管理的梦魇 - 排序可能会成为一个问题,很难看出发布中的变化,或者某个特定对象发生了变化。
运行所有3个选项后,我会说2可以使用,但是首先需要花费很长时间才能设置 - 以正确的顺序执行所有脚本需要花费很长时间 - 并且它仍然需要使用一个Database diff工具,用于为UAT / Live生成脚本。所以我现在建议1和1之间的混合2。