我正在尝试按照特定指南将我的项目部署到Heroku(http://bytesofpi.com/post/20898722298/pushing-your-meteor-project-to-heroku)
其中一个步骤表明
var mongo_url = process.env.MONGOHQ_URL;
需要在server / server.js中替换“MONGO_URL”。
问题是我找不到那个变量,唯一提到的那个变量是在下面的代码中
// check for a valid MongoDB URL right away
if (!process.env.MONGO_URL)
throw new Error("MONGO_URL must be set in environment");
有没有人有这方面的经验,或者知道在哪里找到“MONGO_URL以便改变它?”
答案 0 :(得分:14)
我建议您不要使用您提到的文章作为指导,而是执行以下操作:
使用Meteorite构建和运行本地Meteor项目:
https://github.com/oortcloud/meteorite
说明在该页面上。
然后使用此buildpack:
https://github.com/oortcloud/heroku-buildpack-meteorite
同样,README还有如何在Heroku上创建你的应用程序(单行)
本自述文件底部的注意意味着您需要使用支付卡验证您的Heroku帐户,以便您可以将mongohq:免费插件添加到您的应用程序。验证后运行:
heroku addons:add mongohq:sandbox
在Heroku上添加数据库。
然后另一步是为你的app设置ROOT_URL,一旦提交了应用程序(仅限第一次),在你的本地app目录中输入:
heroku config:set ROOT_URL=<<domain of your app>>
除非您使用自定义名称&lt;&gt;将是
http://appname.herokuapp.com
然后运行:
heroku config
你会看到MONGOHQ_URL已经与BUILDPACK_URL和ROOT_URL一起设置。
答案 1 :(得分:0)
Oortcloud buildpack是我用过的最好的Heroku buildpack。
话虽如此,Heroku是死路一条,因为它不支持会话亲和力。至少,您可以在Heroku上启动并运行您的应用程序,但除非Heroku人员决定更换所有负载均衡器,否则您将永远无法使用多个dynos进行扩展。仅供参考。死路一条。
CloudBees看起来可能是更好的Meteor托管平台...... https://github.com/CloudBees-community/meteor-clickstart
答案 2 :(得分:0)
我多次浏览这个标题,试图找到一个最新的解决方案,将我的本地Meteor Mongo数据库部署到Heroku。所以我在这里发布这个答案给那些做同样事情的人,虽然问题实际上是关于设置MONGO_URL。
这是一个更新的解决方案(Meteor 1.3.2.4),用于将本地Meteor Mongo数据库推送到带有(免费)mLabs的Heroku。我的应用程序没有使用陨石,它使用了&#34;马&#34; buildpack。
<强> 1。转储当地的mongo db
在app文件夹中的终端(NOT mongo shell)中
mongodump --port=3001 -o ../dump
<强> 2。将db文件移出&#34; dump / your-db-name&#34;进入&#34;转储&#34;
在我的本地meteor实例中,/ dump文件夹放在我的app上方的文件夹中,所以&#34; dump&#34;与我的应用程序文件夹位于同一目录中。 &#34;转储&#34;包含以我的数据库命名的文件夹(&#34; dump / my-database-name /&#34;)。这会导致下一个脚本因mongorestore错误而失败,并且不知道如何处理我的数据库名称&#39;&#34;。要防止出错,请移动文件夹中的所有文件&#34; my-database-name&#34;进入&#34; dump&#34;,然后删除&#34; my-database-name&#34;文件夹中。
默认情况下,您的数据库名称是&#34; meteor&#34;,所以如果您还没有更改它,请查找&#34; dump / meteor /&#34;。
第3。在mLabs中,如果您还没有这样做,请创建具有管理员权限的用户。对我来说,在安装时分配的默认用户不起作用。
<强> 4。将您的转储数据库推送到您的Heroku应用程序的mLabs。这假设您已在Heroku应用程序中添加了mLabs插件,并设置了&#34; MONGO_URL&#34;在您的Heroku应用程序配置中。如果这些都没有完成,必须先完成。
在终端(不是mongo shell)中,从应用程序的目录更改为包含&#34; dump&#34;的目录。目录。就我而言,它只是&#34; cd ../"。
获取您的默认&#34;导入&#34;脚本转到你的Heroku应用程序的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;选项卡并查看推送的数据。
祝你好运:)我希望这可以帮助别人!