簡體   English   中英

docker,mongorestore-錯誤:根目錄必須是單個數據庫的轉儲

[英]docker, mongorestore - ERROR: root directory must be a dump of a single database

我必須在我的本地計算機上更新一個集合並將其上傳到docker實例,這是我的過程

$ #backup local database
$ mongodump --collection styles --db ccc-mongo
$ tar -zcvf dump.tar.gz dump

$ scp dump.tar.gz me@remote:/home/me
$ ssh me@remote
me@remote: ~ $ docker exec -i mongo-dev sh -c "cd /tmp && tar xzf - && mongorestore --collection styles --db ccc-mongo" < dump.tar.gz

這給我一個錯誤

connected to: 127.0.0.1
Fri Dec 18 16:05:26.768 ERROR: ERROR: root directory must be a dump of a single database
Fri Dec 18 16:05:26.768 ERROR:        when specifying a db name with --db
Import BSON files into MongoDB.

我只需要還原一個集合而不會刪除其他數據,非常感謝任何建議

這對我有用

docker exec -i mongo-dev sh -c "cd /tmp && tar xzf - && mongorestore --db ccc-mongo --drop dump/ccc-mongo  && rm -Rf dump"  < dump.tar.gz

需要確保在轉儲中僅包含我要還原的集合

我想出了怎么做

注意:請簡要說明您的問題。 問題尚不清楚,請指定要在哪里進行還原並將數據還原到服務器數據庫或ubuntu運行計算機中。 如果從本地數據庫進入服務器,請執行以下步驟:

這是說明

將轉儲文件夾復制到服務器

scp -r /local_path/to/dump_folder root@111.222.33.4:/remote/path

SSH進入服務器

ssh root@111.222.33.4

從服務器根目錄復制到Docker容器內部

docker cp dump_folder mongodb:/dump_folder

進入mongodb docker容器

docker exec -it mongodb bash

檢查復制的文件夾是否存在ls (如果您將其命名為與本示例相同的文件夾,則應該看到dump_folder)

使用mongorestore

mongorestore --drop -d AppName dump_folder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM