2016-03-04 23 views
1

我在使用Dokku的Ubuntu服務器上最近部署了一個應用程序。這是一個包含Mongodb數據庫的Node.js應用程序。在Dokku安裝中導入並添加索引到mongodb

爲了使網站正常工作,我需要在數據庫中加載geojson文件。在我的開發機器上,這是使用mongoimport命令從ubuntu命令行完成的。我不知道如何在Dokku中做到這一點。

我還需要添加一個地理空間索引。這是從我的開發機器上的mongo控制檯完成的。我也不知道如何在Dokku安裝上做到這一點。

回答

3

mongodump將從現有數據庫中導出所有數據+索引。 https://docs.mongodb.org/manual/reference/program/mongodump/

然後mongorestore將恢復一個帶有索引的mongodump到一個現有的數據庫。 https://docs.mongodb.org/manual/reference/program/mongorestore/

mongorestore將重新創建mongodump記錄索引。

您可以從開發機器到Dokku數據庫執行這兩個命令。

+0

我無法弄清楚如何直接訪問mongo數據庫。 從我的本地機器使用mongodump生成轉儲文件。我嘗試使用dokku mongo工具,但它不喜歡我的bson文件。 這裏是我試過的命令: '$ dokku蒙戈:進口mongo_claims ngust

+0

另外我試圖tar tar文件,但它仍然無法正常工作。 '$ dokku mongo:import mongo_claims ngust

+0

將您的bson移動到命名爲dump的文件夾並tar此文件夾 –

3

非常感謝@Jonathan。你幫我解決了這個問題。這是我做的。

我在本地機器上使用了mongodump來創建數據庫的備份文件。它默認爲一個.bson文件。

我將該文件上傳到我的遠程服務器。在遠程服務器上,我把bson文件放在一個名爲「dump」的文件夾中。然後塗抹該文件夾。我最初習慣於使用-z標誌,但是mongo/dokku不喜歡gzip。所以我用焦油,無壓縮,像這樣:

tar -cvf dump.tar dump 

下一個我跑了dokku蒙戈導入命令:

$dokku mongo:import mongo_claims < dump.tar 
2016-03-05T18:04:17.255+0000 building a list of collections to restore from /tmp/tmp.6S378QKhJR/dump dir 
2016-03-05T18:04:17.270+0000 restoring mongo_claims.docs4 from /tmp/tmp.6S378QKhJR/dump/docs4.bson 
2016-03-05T18:04:20.729+0000 [############............] mongo_claims.docs4 22.3 MB/44.2 MB (50.3%) 
2016-03-05T18:04:22.821+0000 [########################] mongo_claims.docs4 44.2 MB/44.2 MB (100.0%) 
2016-03-05T18:04:22.822+0000 no indexes to restore 
2016-03-05T18:04:22.897+0000 finished restoring mongo_claims.docs4 (41512 documents) 
2016-03-05T18:04:22.897+0000 done 

該訣竅。我的網站立即擁有所有數據。

0

導入效果很好,但因爲你mentionned蒙戈控制檯,它很高興知道,你還可以連接到您的蒙戈例如,如果你使用https://github.com/dokku/dokku-mongomongo:listmongo:connect ...

如:

[email protected]:~# dokku mongo:list 
NAME  VERSION  STATUS EXPOSED PORTS LINKS 
mydb  mongo:3.2.1 running 1->2->3->4->5 mydb 

[email protected]:~# dokku mongo:connect mydb 
MongoDB shell version: 3.2.1 
connecting to: mydb 
> db 
mydb 

    Mongo shell! 

> exit 
bye