繁体   English   中英

mongodb转储并管道到其他数据库名称

[英]mongodb dump and pipe to other db name

Mongodb版本3.2.12。 我有两个本地数据库,“ base1”和“ base2”

我想将所有数据(所有集合)从base1复制到base2,以替换那里的所有内容(例如将生产转储到开发环境时)。

任何管道命令(或其他简单方法)可以做到这一点?

我试过了

mongodump --archive --db base1 | mongorestore --db base2 --archive

列出了很多“将base1.collectionname写入要在stdout上存档的文件”,但是没有任何内容写入base2。

我也试过

mongodump --db base1 --gzip --archive=/path/to/file.gz
mongorestore --db base2 --gzip --archive=/path/to/file.gz

转储有效,还原仅显示“创建存档意图”,“完成”

我遇到了同样的问题,经过一番谷歌搜索之后,我发现了这个帖子https://stackoverflow.com/a/43810346/3785901

我试过以下命令:

mongodump --host HOST:PORT --db SOURCE_DB --username USERNAME --password PASSWORD --archive | mongorestore --host HOST:PORT --nsFrom 'SOURCE_DB.*' --nsTo 'TARGET_DB.*' --username USERNAME --password PASSWORD  --archive --drop

它就像一个魅力。 它应该适合您的情况,祝您好运。

我使用以下命令:

mongodump \
    --host ${mongo.host} \
    --port ${mongo.port} \
    --username ${mongo.backup_restore_user} \
    --password ${mongo.backup_restore_password} \
    --db ${mongo.db} \
    --gzip \
    --dumpDbUsersAndRoles \
    --archive=${archive}

mongorestore \
        --keepIndexVersion \
        --drop \
        --gzip \
        --restoreDbUsersAndRoles \
        --db ${mongo.db} \
        --host ${mongo.host} --port ${pims.mongo.port} \
        --username ${mongo.backup_restore_user} \
        --password ${mongo.backup_restore_password} \
        --archive=${archive}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM