首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Meteor和MongoDB部署到Heroku

将Meteor和MongoDB部署到Heroku
EN

Stack Overflow用户
提问于 2012-10-31 15:40:22
回答 3查看 3.7K关注 0票数 4

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

其中一个步骤说明

代码语言:javascript
复制
var mongo_url = process.env.MONGOHQ_URL;

需要替换server/server.js中的MONGO_URL。

问题是我根本找不到这个变量,在下面的代码中只提到了这个变量

代码语言:javascript
复制
    // 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“来改变它?

EN

回答 3

Stack Overflow用户

发布于 2012-11-03 08:34:47

我建议你做以下事情,而不是使用你提到的文章作为指南:

使用Meteorite构建和运行您的本地Meteor项目:

代码语言:javascript
复制
https://github.com/oortcloud/meteorite

说明在那一页上。

然后使用这个构建包:

代码语言:javascript
复制
https://github.com/oortcloud/heroku-buildpack-meteorite

再一次,自述文件有如何在Heroku上创建你的应用程序(一行)

本自述文件底部的注释意味着您需要使用支付卡验证您的Heroku帐户,以便您可以将mongohq:免费插件添加到您的应用程序中。验证运行后:

代码语言:javascript
复制
heroku addons:add mongohq:sandbox

在Heroku上添加数据库。

然后另一步是为你的应用程序设置ROOT_URL,一旦应用程序提交后,在你的本地应用程序目录中键入以下内容(仅在第一次):

代码语言:javascript
复制
heroku config:set ROOT_URL=<<domain of your app>>

除非您使用的是自定义名称,否则<>将类似于

代码语言:javascript
复制
http://appname.herokuapp.com

如果您随后运行:

代码语言:javascript
复制
heroku config

您将看到,MONGOHQ_URL已与BUILDPACK_URL和ROOT_URL一起设置。

票数 14
EN

Stack Overflow用户

发布于 2013-03-10 12:45:44

Oortcloud buildpack是我用过的最好的Heroku构建包。

也就是说,Heroku是一个死胡同,因为它不支持会话亲和性。至少,您可以在Heroku上启动和运行您的应用程序,但您将无法使用多个dynos扩展它,除非Heroku人员决定更换他们所有的负载均衡器。仅供参考。死胡同。

CloudBees看起来可能是更好的流星托管平台……https://github.com/CloudBees-community/meteor-clickstart

票数 0
EN

Stack Overflow用户

发布于 2016-06-19 15:40:24

我多次浏览这个标题,试图找到一个最新的解决方案来将我本地的Meteor Mongo db部署到Heroku。因此,我在这里为所有做同样事情的人提供这个答案,尽管这个问题实际上是关于设置MONGO_URL的。

这是一个更新的解决方案(Meteor 1.3.2.4),用于使用(免费) mLabs将本地Meteor Mongo数据库推送到Heroku。我的应用程序没有使用陨石,它使用的是“马”构建包。

1.转储本地的mongo db

在app文件夹终端(不是mongo shell)中,

代码语言:javascript
复制
mongodump --port=3001 -o ../dump

转储2.将db文件从“转储/-db-”上移到“转储”名称中

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

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

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

4.将你转储的数据库推送到你的Heroku应用程序的mLabs。这假设你已经在你的Heroku应用程序中添加了mLabs插件,并在你的Heroku应用程序配置中设置了"MONGO_URL“。如果这些都没有完成,就必须先完成。

在终端(不是mongo shell)中,从应用程序的目录更改为包含"dump“目录的目录。在我的例子中,它只是"cd ../“。

进入你的Heroku应用的mLabs插件,点击"Tools“标签,获取默认的”导入“脚本。这个脚本不适用于我,但它可能适用于您。如果没有,请粘贴此脚本,用您的变量替换带括号的变量(也要替换括号)。

代码语言:javascript
复制
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“集合”选项卡,并看到您的推送数据。

祝你好运:)我希望这对某人有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13153314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档