2015-02-05 33 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