Heroku mongo_mapper MONGOHQ_URL невозможно разобрать по ruby ​​uri

Я обыскал Интернет, не найдя адекватного решения, поэтому я здесь, чтобы обратиться за помощью к сообществу SO.

Я переношу приложение rails 2 на Heroku Bamboo в 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'] %>

и все готово (я также закомментировал старый код инициализатора). Однако происходит сбой со следующей ошибкой подключения:

05 февраля 11:18:28 имя моего приложения app/web.1: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/uri/generic.rb:214:in `initialize': схема mongodb не принимает часть реестра: heroku:2QMdYzo6z5nmJJsmWAWKd_205umc05tBuP2ZodGaNDZ7N5rE4ns09jhsfFBjmkQ2ls_rfTiVC0lD24Y2byDXbg@candidate.21.mongolayer.com:10499,candidate.4.mongolayer.com:10499,candidate.4.mongolayer.com:1062

Недопустимый URI можно понять, но это то, что мне скармливает Heroku. Что мне не хватает, чтобы синтаксический анализатор uri принял его?

Заранее спасибо.


person Vincent Jorgensen    schedule 05.02.2015    source источник


Ответы (1)


Ответ заключается в наличии этой запятой (,) в uri. Когда я убрал второй хост и запятую, он повел себя правильно :-)

В частности, я создал переменную ENV Heroku с именем MONGOHQ_URL2 без второго имени хоста, а затем обновил свою config/mongo.yml, чтобы использовать вместо нее это имя.

person Vincent Jorgensen    schedule 05.02.2015
comment
Остается вопрос, как можно указать второй хост? Если mongomapper возьмет только один хост, мы потеряем надежность, которая должна исходить от наличия кластера mongo. - person Ray Myers; 01.10.2015