2015-02-05 54 views
2

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

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

回答

2

我想通了,多亏了这篇博客文章:http://stevespiga.rel.li/mongodump-mongorestore.html

这里的解决方案的摘要:

  1. 我跑的命令:heroku config | grep "MONGOHQ"。这给了我输出的形式:

MONGOHQ_URL:mongodb://heroku:[email protected]:88888/app123456

  • 这可以解释为:
  • MONGOHQ_URL:mongodb://username:[email protected]: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

    请注意,这里假设您在还原之前没有与转储分贝同名的本地分贝。如果需要,您可以按照此stackoverflow post中列出的步骤重命名数据库。

    我希望这有助于!

    +0

    非常感谢。我一直在想它一天。 – Saurabh 2016-07-18 09:43:37

    0

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

    +0

    我按照您的建议去了仪表板,经过大量搜索后,仍无法找到创建备份的选项。我正在使用MongoHQ的免费版本 - 是否禁用该版本的备份? @rdegges – 2015-02-09 15:47:02

    相关问题