部署Meteor和MongoDB到Heroku

我试图按照一个特定的指南将我的项目部署到Heroku(http://bytesofpi.com/post/20898722298/pushing-your-meteor-project-to-heroku)

其中一个步骤表明

var mongo_url = process.env.MONGOHQ_URL; 

需要replaceserver / server.js中的“MONGO_URL”。

问题是我根本找不到那个variables,唯一提到这个variables的是下面的代码

  // check for a valid MongoDB URL right away if (!process.env.MONGO_URL) throw new Error("MONGO_URL must be set in environment"); 

有没有人有这方面的经验,或知道在哪里可以find“MONGO_URL以改变它?

我会build议,而不是使用你提到的文章作为指导,你做了以下几点:

使用陨石来build立和运行您当地的Meteor项目:

 https://github.com/oortcloud/meteorite 

说明在该页面上。

然后使用这个buildpack:

 https://github.com/oortcloud/heroku-buildpack-meteorite 

再次,自述文件有如何创build你的应用程序在Heroku(一个class轮)

本自述底部的NOTE表示您需要使用支付卡validation您的Heroku帐户,以便您可以将mongohq:​​免费附加组件添加到您的应用程序中。 一旦validation运行:

 heroku addons:add mongohq:sandbox 

在Heroku上添加数据库。

然后,另一个步骤是为您设置ROOT_URL应用程序,一旦提交应用程序(仅限第一次),请在您的本地应用程序目录中input以下内容:

 heroku config:set ROOT_URL=<<domain of your app>> 

除非你使用自定义的名字<>会像这样

 http://appname.herokuapp.com 

如果你然后运行:

 heroku config 

你会看到MONGOHQ_URL已经和BUILDPACK_URL和ROOT_URL一起被设置了。

Oortcloud buildpack是我用过的最好的Heroku buildpack。

这就是说,Heroku是一个死胡同,因为它不支持会话亲和力。 至less,您可能能够在Heroku上运行您的应用程序,但是除非Heroku人员决定更换所有负载均衡器,否则您将无法使用多个dynos进行扩展。 仅供参考。 死路。

CloudBees看起来可能是更好的meteor主机平台… https://github.com/CloudBees-community/meteor-clickstart

我多次浏览这个标题,试图find一个将我的Meteor Mongo数据库部署到Heroku的最新解决scheme。 所以我在这里发布这个答案给所有同样的人,虽然问题是关于设置MONGO_URL。

这里是一个更新的解决scheme(meteor1.3.2.4)推送本地Meteor Mongo数据库到Heroku(免费)mLabs。 我的应用程序不使用陨石,它使用“马”buildpack。

1.做一个本地mongo db的转储

在你的应用程序文件夹中的terminal(不是mongo shell)

 mongodump --port=3001 -o ../dump 

2.将db文件移出“dump / your-db-name”到“dump”

在我的本地meteor实例中,/ dump文件夹被放置在我应用程序上方的文件夹中,所以“dump”与我的应用程序文件夹位于同一目录中。 “dump”包含一个以我的数据库命名的文件夹(“dump / my-database-name /”)。 这会导致下一个脚本失败,出现mongorestore错误“不知道如何处理'my-database-name'”。 为防止出现错误,请将文件夹“my-database-name”中的所有文件上移到“dump”中,然后删除“my-database-name”文件夹。

默认情况下,你的数据库名称是“meteor”,所以如果你没有改变它,请查找“dump / meteor /”。

3.在mLabs中,如果尚未这样做,请创build一个具有pipe理员权限的用户。 对我来说,在安装时分配的默认用户不起作用。

4.将你倾倒的数据库推到你的Heroku应用程序的mLabs。 假设你已经在你的Heroku应用程序中添加了mLabs插件,并在你的Heroku应用程序configuration中设置了“MONGO_URL”。 如果这些没有完成,他们必须先完成。

在terminal(而不是mongo shell),从你的应用程序的目录切换到保存“转储”目录的目录。 就我而言,这只是“cd ../”。

通过转到您的Heroku应用程序的mLabs插件,然后单击“工具”选项卡,获取您的默认“导入”脚本。 这个脚本不适合我,但它可能适用于你。 如果没有,粘贴这个脚本,用你的variablesreplace括号内的variables(也可以replace括号)。

 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“集合”选项卡并查看推送的数据。

祝你好运:)我希望这可以帮助别人!