通常在项目开发过程中,我会频繁部署应用程序,以确保在生产环境中不会出现任何问题。
此外,在开发过程中,我发现自己需要更改数据库的模式。
如何轻松地更新生产环境中的数据库?
我一直在删除旧的数据库并重新附加新的数据库。有没有更快的方法来更新部署的数据库?
谢谢
编辑
有哪些免费工具可以实现这一点?
通常在项目开发过程中,我会频繁部署应用程序,以确保在生产环境中不会出现任何问题。
此外,在开发过程中,我发现自己需要更改数据库的模式。
如何轻松地更新生产环境中的数据库?
我一直在删除旧的数据库并重新附加新的数据库。有没有更快的方法来更新部署的数据库?
谢谢
有哪些免费工具可以实现这一点?
在部署时,需要维护一个包含所有应用于开发数据库的变更脚本列表,并将这些脚本应用于生产数据库。
或者,可以使用第三方工具来比较两个模式并提供一个变更脚本,然后运行该脚本。
我尝试使用类似RedGate SQL Compare的工具,它会显示两个版本之间的差异,并实际脚本化不同的组件。您也可以养成习惯脚本化所有数据库修订,这样您就有一个更改的审计追踪,并且可以在准备部署时以编程方式应用它们。
试试DBSourceTools。
http://dbsourcetools.codeplex.com
它是开源的,能将整个数据库-表、视图、存储过程和数据-脚本到磁盘,并允许您通过部署目标重新创建该数据库。
它专门设计用于帮助开发人员将其数据库纳入源代码控制下。
我个人喜欢保持完整的创建脚本更新,以及维护升级脚本,每当我为特定版本更改模式时。我曾经使用过Red Gate SQL Compare,它是一个非常好的工具,但我更喜欢保持脚本的维护。
始终编写脚本以进行模式更改。将脚本放置在推广文件夹中,以便在推广更改时执行脚本以更改每个环境。
生成脚本向导完全满足了我的需求。
Visual Studio 数据库版 非常擅长这方面。它将整个模式保存在源脚本中,并与其余代码一起进行源控制。当您进行更改时,它可以分析模式的依赖关系。它可以运行最佳实践分析。它还可以生成一个 .dbschema 文件,该文件可由部署工具用于将数据库升级到当前模式。
您实际上可以通过持续集成和构建直接将其自动化到测试环境、暂存环境甚至生产环境。这意味着当您检入测试分支时,构建机器将构建产品,运行构建验证测试并将其部署在开发服务器上。当您从测试分支反向集成到主分支时,构建机器会构建产品,运行 BVT 并将其部署在您的暂存测试/验收服务器上。当您集成到发布分支时,构建机器将构建、测试并最终在生产环境中部署。现在确实如此,不多的组织准备走得那么远,并让持续构建过程自动部署到实时生产服务器上,我认为这是有点激进的想法。但我认为您应该更信任您的自动化 BVT 和自动化流程,而不是任何手动测试和部署。