繁体   English   中英

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

[英]How can I update my SQL Server database schema?

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

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

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

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

谢谢

编辑

有什么免费工具吗?

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

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

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM