在 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
我最近使用 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