如何从 Heroku 的 MongoHQ 下载生产数据到本地机器?

Posted

技术标签:

【中文标题】如何从 Heroku 的 MongoHQ 下载生产数据到本地机器?【英文标题】:How to download production data from MongoHQ in Heroku to local machine? 【发布时间】:2015-02-05 15:47:59 【问题描述】:

我有一个 Web 应用程序,其中包含在 Heroku 的 Cidar 堆栈上运行的生产数据。生产数据存储在 MongoDB 中,我使用 MongoHQ 在生产中对其进行管理。我想将生产数据下载到我的本地机器上,以便我可以使用生产数据在本地运行我的 Web 应用程序以进行调试。我对MongoDB还比较陌生,所以经过多次尝试,我都没有成功。

有没有办法将 MongoDB 数据(集合)从 Heroku 下载到我本地机器上的本地 MongoDB 中?

【问题讨论】:

【参考方案1】:

我想通了,感谢这篇博文:http://stevespiga.rel.li/mongodump-mongorestore.html

这里总结一下解决方案:

    我运行了命令:heroku config | grep "MONGOHQ"。这给了我表单的输出:

MONGOHQ_URL:mongodb://heroku:veryLongPasswordString@somewhere.mongohq.com:88888/app123456.

    这可以解释为:

MONGOHQ_URL:mongodb://username:password@host:port/path

    然后我通过运行将生产数据库转储到本地目录:

mongodump --db <path> --host <host> --port <port> --username <username> --password <password> --out <folder for dump>

    示例:

mongodump --db app123456 --host somewhere.mongohq.com --port 88888 --username heroku --password veryLongPasswordString --out ./testDump.

    下一步是获取转储的数据并将其还原到本地数据库:

mongorestore ./testdump

注意,这假设您在还原之前没有与转储数据库同名的本地数据库。如果需要,您可以按照*** post 中概述的步骤重命名数据库。

我希望这会有所帮助!

【讨论】:

非常感谢。我已经想了一天。【参考方案2】:

如果您打开 MongoHQ 仪表板 ($ heroku addons:open mongohq),则可以选择创建备份并从那里下载。

【讨论】:

我已按照您的建议访问了仪表板,经过大量搜索后,我仍然无法找到创建备份的选项。我正在使用 MongoHQ 的免费版本——该版本是否禁用了备份? @rdegges

以上是关于如何从 Heroku 的 MongoHQ 下载生产数据到本地机器?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB

Heroku & MongoHQ:ActionView::Template::Error(操作:#<Moped::Protocol::Commands::Authenticate fai

heroku mongohq 和 mongoid Mongo::ConnectionFailure

Rails,mongoid,heroku 性能

如何从heroku下载db?

如何从我的 Heroku 下载 csv 更改