如何更新SQL Server数据库架构?

时间:2009-07-23 12:09:50

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

通常在项目开发过程中我会经常部署,以确保我在生产中不会遇到任何问题。

此外,在整个开发过程中,我发现自己正在改变数据库的架构。

如何在生产中轻松更新数据库?

我一直在删除旧数据库并重新连接新数据库。是否有更快的方式来更新部署数据库?

由于

修改

有哪些免费工具?

9 个答案:

答案 0 :(得分:12)

维护您应用于dev数据库的所有更改脚本的列表,并在部署时将它们应用于Production数据库。

或者,使用可以比较两个模式的第三方工具,并提供可以随后运行的更改脚本。

答案 1 :(得分:8)

我尝试使用像RedGate SQL Compare这样的工具,这些工具会在两个版本之间显示“差异”,并实际编写出不同的组件。您还可以习惯于编写所有数据库修订的脚本,以便对已经进行的更改进行审计跟踪,并在准备部署时以编程方式应用它们。

答案 2 :(得分:2)

最好的办法是将更改作为一组diff脚本来实现。因此,不是删除表并重新创建它,而是脚本为ALTER TABLE。

还有一些工具可以帮助你做到这一点。如果您保留原始数据库和新数据库的副本,则可以针对这两个数据库运行一个工具,该工具将生成将从一个版本带到另一个版本的SQL。

答案 3 :(得分:1)

我个人希望每当我更改特定版本的架构时,都会更新完整的创建脚本以及维护升级脚本。我使用过Red Gate SQL Compare,它是一个非常好的工具,但更喜欢保持脚本的维护。

答案 4 :(得分:1)

始终编写脚本以更改架构。将脚本放在促销文件夹中,以便在提升更改时执行脚本以更改每个环境。

答案 5 :(得分:1)

尝试DBSourceTools。
http://dbsourcetools.codeplex.com
它的开源,并将脚本整个数据库
- 表,视图,过程和数据到磁盘,然后允许您通过部署目标重新创建该数据库 它专门用于帮助开发人员在源代码控制下获取数据库。

答案 6 :(得分:0)

Generate Scripts向导完全符合我的需要。

答案 7 :(得分:0)

Migrator Dot Net是一个用于版本化数据库的强大工具。在使用迁移后,很难回到手动跟踪脚本和进行数据库比较。

答案 8 :(得分:0)

Visual Studio数据库版is quite good at this。它使源代码脚本中的整个架构与其余代码一起保持在源代码管理中。当您进行更改时,它可以分析您的架构的依赖关系。它可以运行最佳实践分析。它可以生成.dbschema文件,部署工具可以使用该文件将数据库升级到当前架构。

实际上,您可以使用continuos集成自动执行此操作,并直接构建测试环境,暂存环境甚至生产环境。这意味着当您签入测试分支时,构建机器将构建产品,运行构建验证测试并将其部署在开发服务器上。当您从测试分支反向集成到主分支时,构建机器构建产品,运行BVT并在您的分段测试/接受服务器上部署。当您集成到发布分支时,构建计算机将构建,测试并最终部署在生产中。现在确实如此,没有多少组织准备好走这么远,让连续构建过程在现场生产服务器上自动部署,我认为这是一种激进的想法。但我说你应该比任何手动测试和部署更信任你的自动化BVT和自动化流程。