我需要快速重新創建一個環境之間的MongoDB實例的合適的「架構」(如它是)一個工具預創建正確的數據庫名稱,集合,將收集瓶蓋,並創建索引爲每個集合。不過,我不想複製這些實例之間的所有數據。我管理的每個環境都有不同的數據,但DB/collection/caps /索引完全相同。有沒有簡單的方法來做到這一點,最好是一個工具,導出所有的名稱,大小寫和索引的JSON文檔,然後可以重新導入到一個新的實例?MongoDB的導入/導出指標
回答
有一次,我有同樣的問題了。我所做的是一組JS文件,我必須在每個env上手動運行(mongo
可以評估腳本)。這些文件裏面有數據,所以我不得不小心管理它們,不要引入dups /損壞的現有數據。
但後來,我發現遷移工具對於這樣的任務非常有幫助。 This one是我最喜歡的,但也有manyothersolutions。
的你認爲變化不可改變的事件流。例如:爲了刪除先前創建的索引,您可以創建新的更改(遷移),從而刪除它。您將該流作爲一組文件存儲在您的VCS中,因此新環境的設置非常簡單(mm migrate
,並且您的基礎是最新的!),以便項目中的新人員使用。另外,這種方法在使用容器或虛擬機時非常有用:通常,您可以基於容器/虛擬機生命週期觸發腳本,從而自動填充數據庫,從而使重新啓動/重新創建變得輕鬆無比。
我不確定我是否遵循這些遷移工具的工作方式。我正在尋找的是這樣的: ' mongoexport --indexes --caps -db MYDB -o MyDB.json本地主機:27017 mongoimport --indexes -caps -db MYDB -i MyDB.json本地主機:27017 ' 有沒有這樣做的東西呢?如果沒有,我可以嘗試使用python和PyMongo編寫它,但我寧願使用貨架上的某些東西來節省時間。 – perdurabo93
後,我沒有找到任何合適的工具,我甩了數據庫,並恢復它沒有數據,因此元數據恢復(特別是所有集合與apropriate索引創建),但集合是空的。這也可以應用於具有數據的數據庫,因此如果沒有衝突,索引將在現有數據庫上創建。
詞根記憶與mongodump
2.Empty轉儲收集的數據
find ./dump -name '*bson' -type f -exec cp /dev/null {} \;
3.Restore數據到新的數據庫與mongorestore
- 1. MongoDB的導入導出數據庫
- 2. MongoDB的導入和導出爲CSV
- 3. 使用SSIS導入導出嚮導的標識插入
- 4. 從Meteor APP導入和導入Mongodb
- 5. 從MongoDB導出csv
- 6. MongoDB導出到XSL
- 7. MySQL導出到MongoDB
- 8. MongoDB導出爲CSV
- 9. 導出mongodb失敗
- 10. 從Xcode導入/導出構建目標
- 11. React原生JSX導出導入標識
- 12. 導出/導入NSKeyedArchiver目標文件
- 13. 導出/導入Eclipse cdt make目標
- 14. Mongodb導入錯誤
- 15. mongodb dataypes導入時
- 16. 使用node.js導出和導入來自mongodb的數據express
- 17. SQL導入/導出
- 18. vCard導入/導出?
- 19. Pimcore導入/導出
- 20. mysql導入/導出
- 21. 導入導出SVN
- 22. SQLXML導入/導出
- 23. 無法導入的mongodb
- 24. 導入到MongoDB中/ GridFS的
- 25. 導入Parse.com的_Installation.json導出
- 26. Mysql的導入/導出
- 27. 從CSV導入指定的列,按標題名稱導出到新文件
- 28. Mongodb導出嵌套字段
- 29. 導出數據MongoDB到ElasticSearch
- 30. 從mongodb導出具體值
你只需要導入索引和上限設置。數據庫和集合在首次使用時會隱式創建。 – Philipp
對,我的所有藏品都有上限,所以我希望它們在添加任何數據之前加蓋和創建。 – perdurabo93