通常在项目开发过程中我会经常部署,以确保我在生产中不会遇到任何问题。
此外,在整个开发过程中,我发现自己正在改变数据库的架构。
如何在生产中轻松更新数据库?
我一直在删除旧数据库并重新连接新数据库。是否有更快的方式来更新部署数据库?
由于
有哪些免费工具?
答案 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和自动化流程。