我有一个应用程序,它在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是一个真正的痛苦。有没有办法可以创建一个有效的统一条目
答案 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"