我使用与Meteor一起安装的默认Mongo数据库在我的本地dev Meteor环境中设置我的应用数据。我的应用程序已准备好在Heroku上部署,但我打算将我的数据与它一起使用(类似于Rails“迁移”)。
在Heroku中,我添加了mLabs插件并设置了“MONGO_URL”变量。如何将我的本地app db推送到我的mLabs实例,以便在Heroku上进行部署?
答案 0 :(得分:3)
这对我有用。
<强> 1。转储我当地的mongo db
在app文件夹中的终端(NOT mongo shell)中,
mongodump --port=3001 -o ../dump
<强> 2。将db文件移出&#34; dump / my-db-name&#34;将文件夹放入&#34;转储&#34;
在我的本地流星实例中,&#34;转储&#34;文件夹放在我的应用程序上方的文件夹中,所以&#34; dump&#34;与我的应用程序文件夹位于同一目录中。 &#34;转储&#34;包含以我的数据库命名的文件夹(&#34; dump / my-database-name /&#34;)。这导致下一个脚本失败并出现mongorestore错误&#34;不知道如何处理我的数据库名称&#39;&#34;。为了防止错误,我移动了文件夹中的所有文件&#34; my-database-name&#34;进入&#34; dump&#34;,然后删除&#34; my-database-name&#34;文件夹中。
默认情况下,meteor应用程序使用数据库名称&#34; meteor&#34;创建,因此对于浏览此问题并且未更改数据库名称的任何人,它将是&#34; dump / meteor / &#34;
<强> 4。将转储的数据库推送到Heroku应用程序的mLabs实例。我已经在我的Heroku应用程序中添加了mLabs插件,并设置了&#34; MONGO_URL&#34;在我的Heroku应用程序配置中。如果这些都没有完成,必须先完成。
在终端(NOT mongo shell)中,从app的目录切换到保存&#34; dump&#34;的目录。目录。
获取默认&#34;导入&#34;通过访问mLabs插件,Heroku应用程序的mLabs实例的脚本,然后单击&#34;工具&#34;标签。这里提供的脚本对我不起作用,但它可能适用于其他人,它确实提供了我在下面修改过的脚本中使用的变量。
第3。如果&#34;导入&#34; mLabs工具中提供的脚本不起作用......
在mLabs&#34;用户&#34;选项卡,创建具有管理员权限的用户。
然后,使用此脚本将变量替换为括号变量(也替换括号)。
mongorestore -h [your mLabs value] -d [your mLabs default user name] -u [your mLabs created user name] -p [your mLabs created user's password]
脚本运行后,您应该能够刷新mLabs&#34;集合&#34;选项卡并查看推送的数据。
祝你好运:)我希望这可以帮助别人!