2015-02-05 3 views
4

나는 적절한 해결책을 찾지 않고 인터넷을 샅샅이 뒤 졌기 때문에 나는 SO 커뮤니티에 도움을 청하기 위해 여기에있다.Heroku mongo_mapper MONGOHQ_URL 루비에 의해 unparseable uri

나는 Heroku Bamboo의 레일 2 앱을 Cedar로 마이그레이션하고 있습니다. 이와 동시에 레일 3과 루비 2.0.0으로 이동합니다 (루비 1.9.3에서도이 오류가 나타납니다).

MongoMapper가 0.8.6에서 조금 더 변경되어 더 이상 이전 이니셜 라이저를 사용할 수 없게 된 것 같습니다. mongo_mapper 최신 0.13.1 버전을 사용하려고합니다.

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 클러스터를 갖는 것으로부터 야기되는 신뢰성을 잃어 버리게됩니다. –