4

我正在尝试按照特定指南(http://bytesofpi.com/post/20898722298/pushing-your-meteor-project-to-heroku)将我的项目部署到 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 以更改它?

4

3 回答 3

14

我建议您不要使用您提到的文章作为指南,而是执行以下操作:

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

https://github.com/oortcloud/meteorite

说明在那个页面上。

然后使用这个 buildpack:

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

同样,自述文件介绍了如何在 Heroku(单行)上创建您的应用程序

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

heroku addons:add mongohq:sandbox

在 Heroku 上添加数据库。

然后另一个步骤是为您的应用程序设置 ROOT_URL,在应用程序提交后(仅第一次)在您的本地应用程序目录中键入:

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

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

http://appname.herokuapp.com

如果你然后运行:

heroku config

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

于 2012-11-03T00:34:46.790 回答
0

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

话虽如此,Heroku 是一个死胡同,因为它不支持会话亲和性。至少,您可能能够在 Heroku 上启动并运行您的应用程序,但您永远无法使用多个 dyno 对其进行扩展,除非 Heroku 人员决定更换所有负载均衡器。供参考。死路。

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

于 2013-03-10T04:45:43.793 回答
0

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

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

1. 转储本地 mongo db

在您的应用程序文件夹中的终端(不是 mongo shell)中,

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

2. 将 db 文件从“dump/your-db-name”移到“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)中,从您的应用程序目录更改为包含“转储”目录的目录。就我而言,它只是“cd ../”。

转到 Heroku 应用程序的 mLabs 插件,然后单击“工具”选项卡,获取默认的“导入”脚本。这个脚本对我不起作用,但它可能对你有用。如果不是,请粘贴此脚本,用您的变量替换括号中的变量(也替换括号)。

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

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

于 2016-06-19T07:40:24.097 回答