【发布时间】:2013-08-01 15:20:27
【问题描述】:
我们有一个包含对象集合的开发服务器。 这些对象的实际积累是一个持续的过程,它在这个本地的开发服务器上运行一个标签、验证等整个过程。 一旦这些对象准备好生产,它们就会被添加到生产数据库中,从那时起,生产数据库将在其计算中使用它们。
我正在寻找一种方法来简单地将增量(新对象)添加到生产数据库中,同时将所有其他集合和旧对象保留在同一个集合中。 到目前为止,我们使用的是 MySql,所以这个过程只涉及运行 DB 结构和数据同步(为此我们使用了 Navicat)。 我们现在正在迁移到 MongoDB,所以这个过程有点棘手。
我对此进行了调查,我认为以下解决方案不符合我的需求:
- 使用
mongodumpthenmongorestore转储开发数据库并将其加载到生产数据库中 - 运行
db.copyDatabase- 实际上将生产数据库替换为开发数据库的副本。
这两种解决方案都有问题,因为它们实际上取代了生产数据库,而我只想更新现有集合中的对象。 另外,Dev => Production 不适合主从拓扑。
我能想到的最好的事情是:
- 将开发数据库复制到生产实例上的“开发”数据库中。
- 将集合从这个开发数据库复制到实际的生产数据库,并添加一个谓词,我将只添加生产数据库中不存在的对象,类似于this solution。
我想知道是否有人有更好的解决方案?
如果没有,是否有人有可以执行此操作的脚本?
【问题讨论】:
标签: mongodb deployment synchronization