nosql - 对于prod环境升级mongodb数据结构有没有什么best practice

 8o断情戒爱o8 发布于 2022-10-25 09:40

目前有一些工具可以很方便的升级线上的数据库的结构,比如ruby写的rails以及php的doctrine都有migration,不知道mongodb有没有很方便升级库结构的方法。

2 个回答
  • 没有,只能靠你自己在程序里做约定。

    这也是这类面向文档的数据库的最大问题,开发的时候不得不小心翼翼,因为我们只能在客户端维护了一份数据库结构,万一有某个开发者多插入或者少插入了些什么字段,服务端都是可以接受的。

    更苦恼的是有时候客户端不是唯一的,因此我们就要在不同的客户端上维护同一份数据结构,这为数据结构的升级带来了很大的不方便。面向文档的设计本来是要解放对数据结构的依赖,但是却没有解决没有数据结构约定后带来的随意性。

    2022-10-26 23:06 回答
  • MongoDB升级数据库还是相对比较方便的,如非特殊版本更新,基本上都不用停服务。

    1.如果你的数据结构有变化,MongoDB的Schema-free机制使你可以不用迁移

    2.如果你想使用新版本中的新功能,那确实得迁移数据了,一种比较通常的做法是通过其Replication机制。可以看一下官方的相应版本的release notes,通常会写升级时是否可以用Replication的方式,不能用的话可能是因为本次新版本在Replicastion协议上本来就有改动。那可能就得停服务来做迁移了。

    3.停服务迁移前,也可以先通过mongodump和mongorestore迁移当前数据,然后停服务再迁移增量数据,通常也不会停太长时间服务。

    2022-10-26 23:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有