在heroku上使用mongodb的正确方法是什么?

时间:2011-07-07 06:19:54

标签: mongodb heroku mongoid

我有一个应用程序,它在Heroku和VPS上托管。我在mongodb这个应用程序上使用mongodb。我想知道在mongoid.yml中定义数据库连接的正确方法是什么,这样同一个文件在heroku和VPS上都能正常工作。 Heroku期望MONGOHQ_URL在生产数据库中,而我的VPS需要默认的db映射:

Correct for heroku: 
    production:
          uri: <%= ENV['MONGOHQ_URL'] %>

Correct for VPS:
     production:
        <<: *defaults
            host: localhost
            database: grbr_production

分别为Heroku和VPS推送mongoid.yml是一个真正的痛苦。有没有办法可以创建一个有效的统一条目

2 个答案:

答案 0 :(得分:0)

将VONGOHQ_URL环境变量添加到指向localhost上的mongodb实例的VPS可能最简单:

的mongodb://本地主机/ grbr_production

答案 1 :(得分:0)

Heroku实例期望的是定义环境变量MONGOHQ_URL。变量名可以是任何东西,如果你没有使用MongoHQ,重命名它是有意义的。

要回答您的问题,您可以为两者配置以下配置文件:

# mongoid config file
production:
    uri: <%= ENV['MONGODB_URI'] %>

然后在您的VPS上,假设一个bash环境:

export MONGODB_URI="mongodb://username:password@localhost:10010/db-name"

确保将所有值更改为适当的值。

您可以在控制台中运行它,或者更好的是,将其添加到运行mongodb实例的用户的〜/ .bashrc文件中,以便在重新启动时保持不变。

然后在heroku上使用heroku toolbelt命令定义它:

heroku config:set MONGODB_URI="mongodb://username:password@VPS-IP-ADDRESS:10010/db-name"