12

我有单独的开发和生产 MongoDB 服务器,我想在开发服务器中保留实际数据一段时间。我应该使用它:mongodumpmongoimport还是其他东西?

澄清:我想将数据从生产复制到开发。

4

3 回答 3

13

如果是一次性的

并且您希望对参数进行精细控制,例如要同步哪些集合,您应该使用:

  • mongodump将生产数据库的 bson 文件转储到本地计算机
  • mongorestore然后检索本地数据库中转储的 BSON 文件

否则你应该检查mongo-sync

这是我为自己编写的脚本,当我不得不不断地将本地MongoDB数据库复制到我的生产数据库中或从我的生产数据库中复制出一个项目时(我知道这很愚蠢)。

将数据库详细信息放入 中后config.yml,您可以使用两个简单的命令开始同步:

./mongo-sync push       # Push DB to Remote
./mongo-sync pull       # Pull DB to Local

如果您在某个项目中使用它,最好添加config.yml.gitignore

mongo-同步演示 gif

于 2015-02-15T00:37:52.670 回答
8

您可以使用db.copyDatabase(...)ordb.cloneDatabase(...)命令:

http://www.mongodb.org/display/DOCS/Copy+Database+Commands

这比 mongodump / mongorestore 快,因为它跳过了在磁盘上创建 bson 表示。

于 2012-09-14T06:41:11.843 回答
3

当您希望开发数据库看起来与生产数据库完全相同时,您只需复制文件即可。我目前正在运行一个设置,我在我的桌面和我的笔记本之间使用 Dropbox 同步我的 MongoDB 数据库——即使这样也能完美运行。

于 2012-09-14T08:23:34.677 回答