如何从 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