在 Dokku 安装中导入并添加索引到 mongodb

Import and add index to mongodb on a Dokku install

我最近使用 Dokku 在 Ubuntu 服务器上部署了一个应用程序。这是一个带有 Mongodb 数据库的 Node.js 应用程序。

为了使网站正常运行,我需要在数据库中加载 geojson 文件。在我的开发机器上,这是使用 mongoimport 命令从 ubuntu 命令行完成的。我不知道如何在 Dokku 中执行此操作。

我还需要添加地理空间索引。这是从我的开发机器上的 mongo 控制台完成的。我也不知道如何在 Dokku 安装上做到这一点。

mongodump 将从现有数据库中导出所有数据和索引。 https://docs.mongodb.org/manual/reference/program/mongodump/

然后 mongorestore 将带有索引的 mongodump 恢复到现有数据库。 https://docs.mongodb.org/manual/reference/program/mongorestore/

mongorestore recreates indexes recorded by mongodump.

您可以从您的开发机器向 Dokku 数据库执行这两个命令。

非常感谢@Jonathan。你帮我解决了这个问题。这是我所做的。

我在本地机器上使用 mongodump 创建了数据库的备份文件。它默认为 .bson 文件。

我将该文件上传到我的远程服务器。在远程服务器上,我将 bson 文件放在一个名为 "dump" 的文件夹中。然后 tar 红色那个文件夹。我最初出于习惯使用 -z 标志,但 mongo/dokku 不喜欢 gzip。所以我使用 tar 没有像这样压缩:

tar -cvf dump.tar dump

接下来我运行 dokku mongo导入命令:

$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

成功了。我的站点立即拥有所有数据。

导入效果很好,但既然你提到了 mongo 控制台,很高兴知道如果你使用 https://github.com/dokku/dokku-mongo 的 [=11],你也可以连接到你的 Mongo 实例=] 和 mongo:connect...

例如:

root@somewhere:~# dokku mongo:list
NAME      VERSION      STATUS   EXPOSED PORTS   LINKS
mydb      mongo:3.2.1  running  1->2->3->4->5   mydb

root@somewhere:~# dokku mongo:connect mydb
MongoDB shell version: 3.2.1
connecting to: mydb
> db
mydb

  Mongo shell!

> exit
bye

对于 dokku v0.5.0+ 和 dokku-mongo v1.7.0+

使用 mongodump 将您的数据导出到存档中:

mongodump --db mydb --gzip --archive=mydb.archive

使用dokku:import从存档中导入数据

dokku mongo:import mydb < mydb.archive