我在没有找到适当解决方案的情况下搜索了互联网,所以我在这里向SO社区寻求帮助。
我正在将Heroku Bamboo的rails 2应用程序迁移到Cedar。同时,我正在转向rails 3和ruby 2.0.0(尽管我在ruby 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`初始化':方案mongodb不接受注册表部分:heroku:2QMdYzo6z5nmJJsmWAWKd_205umc05tBuP2ZodGaNDZ7N5rE4ns09jhsfFBjmkQ2ls_rfTiVC0lD24Y2byDXbg@candidate.21.mongolayer.com:10499, candidate.4.mongolayer.com:10625(或错误的主机名?)(URI :: InvalidURIError)
无效的URI是可以理解的,但这是由Heroku提供给我的。为了让uri解析器接受它,我缺少什么?
提前谢谢。
答案 0 :(得分:0)
答案在于uri中存在逗号(,)。当我删除第二个主机和逗号时,它的行为正确: - )
具体来说,我创建了一个名为MONGOHQ_URL2
的Heroku ENV变量而没有第二个主机名,然后更新了我的config/mongo.yml
以使用该变量。