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

时间:2015-02-05 15:48:00

标签: mongodb heroku mongohq

我有一个Web应用程序,其生成数据在Heroku的Cidar堆栈上运行。生产数据存储在MongoDB中,我使用MongoHQ在生产中管理它。我想将生产数据下载到我的本地机器上,这样我就可以在本地运行我的Web应用程序和生产数据以进行调试。我仍然是MongoDB的新手,所以经过多次尝试,我没有成功。

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

2 个答案:

答案 0 :(得分:2)

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

这里是解决方案的摘要:

  1. 我运行了命令:heroku config | grep "MONGOHQ"。这给了我以下形式的输出:
  2. MONGOHQ_URL:mongodb://heroku:veryLongPasswordString@somewhere.mongohq.com:88888/app123456

    1. 这可以解释为:
    2. MONGOHQ_URL:mongodb://username:password@host:port/path

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

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

        1. 示例:
        2. mongodump --db app123456 --host somewhere.mongohq.com --port 88888 --username heroku --password veryLongPasswordString --out ./testDump

          1. 下一步是获取转储的数据并将其还原到本地数据库:
          2. mongorestore ./testdump

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

            我希望这有帮助!

答案 1 :(得分:0)

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