【问题标题】:How do I specfiy a MongoHQ database when deploying Meteor app?部署 Meteor 应用程序时如何指定 MongoHQ 数据库?
【发布时间】:2013-01-14 23:28:41
【问题描述】:

我想在使用meteor deploy 部署 Meteor 应用程序时使用我自己的 MongoHQ 数据库。 The documentation explains how to do this when deploying and running on a machine I control:

$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js

但是关于如何使用meteor deploy 执行此操作的文档似乎有点稀疏。有可能吗?

编辑:我尝试关注http://docs.meteor.com/#meteor_settings 并添加了一个 settings.json 文件并将其放入:

{"MONGO_URL" : "mongodb://user:pass@mongohq.com:10000/mydatabase"} 

然后用

部署

meteor deploy myappname.meteor.com --settings settings.json

但部署的版本似乎没有使用我的数据库

【问题讨论】:

  • 您需要决定meteor 的Web 服务器将在哪里运行。 MongoHQ 只能充当数据库服务器的角色。我怀疑部署捆绑器不包含 MONGO_URL,因此部署到 Meteor 基础设施不会使用 MongoHQ 数据库。但是你绝对应该问 Meteor 开发人员,并提出请求。
  • 我想用“meteor deploy”来部署它,我认为它会部署到他们的服务器上。但我想使用我自己的 MongoHQ 实例而不是默认实例。
  • 我添加了一个 settings.json 文件并放入其中: {"MONGO_URL" : "mongodb://user:pass@mongohq.com:10000/mydatabase"} 然后部署了流星deploy myappname.meteor.com --settings settings.json但部署的版本并没有使用我的数据库。

标签: mongodb meteor


【解决方案1】:

我最终部署到 Heroku,而不是使用 buildpack。然后我可以使用 heroku 配置设置变量。

【讨论】:

    【解决方案2】:

    快速扫描代码库会发现 remote_collection_driver.js 中的这一行:

    Meteor._RemoteCollectionDriver = new Meteor._RemoteCollectionDriver(process.env.MONGO_URL);

    我敢肯定,如果您将其破解以指向您想要的位置,它就会起作用。如果这太过分了(例如,如果您计划更新 Meteor 版本),您可以尝试从您自己的代码中尽早尝试更改 Meteor._RemoteCollectionDriver 或 process.env.MONGO_URL(无需直接侵入 Meteor 的 js )。祝你好运。

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 1970-01-01
      • 2015-11-08
      • 2013-01-02
      • 2014-03-27
      • 2014-08-21
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      相关资源
      最近更新 更多