【问题标题】:Is there a convenient way to manage hosted MongoDB instances linked to an heroku app?有没有一种方便的方法来管理链接到 heroku 应用程序的托管 MongoDB 实例?
【发布时间】:2014-01-12 10:55:13
【问题描述】:
我的大多数 Heroku 应用程序都使用提供托管 MongoDB 的插件之一(即 MongoLab 或 MongoHQ)。我的一个常见任务是转储远程数据并将其加载到本地实例中以进行开发/调试。另一个任务是打开一个登录到远程实例的控制台。
有没有一种方便的方法来导出远程实例的连接参数并执行常见任务。
【问题讨论】:
标签:
mongodb
plugins
heroku
command-line-interface
heroku-toolbelt
【解决方案1】:
我写了CLI plugin for working with MongoDB storage:
运行安装:
$ heroku plugins:install https://github.com/Empeeric/heroku-mongo.git
然后就可以得到当前数据的db-dump了:
$ heroku mongo:dump
然后再恢复该数据。
$ heroku mongo:restore
(一个警告是 system.* 集合的副本。注意这些)
您也可以简单地heroku mongo 打开与您的应用关联的当前数据库的控制台(由MONGOLAB_URI 或MONGOHQ_URL 指定)
点击heroku mongo --help 获取其他命令。
编辑:
我为dump 和restore 命令添加了两个别名。
还添加了一个标志来自动将转储的数据加载到本地数据库中:
$ heroku dump -l
这将转储应用程序使用的数据库(从heroku config 推断)并将其加载到本地实例到与应用程序同名的数据库中。