2015-02-05 81 views
4

我没有找到足够的解决方案在互联网上搜索,所以我在这里要求SO社区的帮助。Heroku mongo_mapper MONGOHQ_URL unparseable by ruby​​ uri

我正在将Heroku Bamboo上的rails 2应用程序迁移到Cedar。同时,我正在转向Rails 3和Ruby 2.0.0(尽管我也遇到了Ruby 1.9.3的错误)。

看来MongoMapper已经经历了一些从0.8.6的变化,到我无法再使用旧的初始化器的地步。我试图使用最新的0.13.1版本的mongo_mapper。

https://devcenter.heroku.com/articles/mongohq,我只需要设置config/mongo.yml到:

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

和我都准备好(我也评论了旧的初始化代码)。但是,它失败,出现以下连接错误:

Feb 05 11:18:28 my-app-name app/web.1: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/uri/generic.rb:214:in `initialize': the scheme mongodb does not accept registry part: heroku:2QMdYzo6z5nmJJsmWAWKd_2[email protected]candidate.21.mongolayer.com:10499,candidate.4.mongolayer.com:10625 (or bad hostname?) (URI::InvalidURIError)

无效的URI是可以理解的,但是这就是由Heroku上被送入我。为了让uri解析器接受它,我错过了什么?

预先感谢您。

回答

0

答案在于uri中存在逗号(,)。当我删除第二个主机和逗号时,它的行为正确:-)

具体来说,我创建了一个名为MONGOHQ_URL2的Heroku ENV变量,没有第二个主机名,然后更新我的config/mongo.yml以代替它。

+0

问题仍然存在,您如何指定第二个主机?如果mongomapper只会占用一个主机,那么我们就会失去mongo集群应有的可靠性。 – 2015-10-01 17:05:17