Mongoid ошибка в Padrino при попытке подключения из Heroku в MongoHQ - PullRequest
1 голос
/ 09 апреля 2011

Я продолжаю получать Mongoid :: Errors :: InvalidDatabase - База данных должна быть Mongo :: DB, а не NilClass

из приложения padrino, над которым я работал на dev локально, но которое отказывается подключатьсяв MongoHQ.Я использую padrino 0.9.23 и Mongoid 2.0.0.Ошеломлен тем, что здесь идет не так.

#database.rb 
require 'uri' 
if ENV["MONGOHQ_URL"] 
  mongo_uri = URI.parse(ENV["MONGOHQ_URL"]) 
  ENV['MONGOID_HOST']     = mongo_uri.host 
  ENV['MONGOID_PORT']     = mongo_uri.port.to_s 
  ENV["MONGOID_USERNAME"] = mongo_uri.user 
  ENV['MONGOID_PASSWORD'] = mongo_uri.password 
  ENV['MONGOID_DATABASE'] = mongo_uri.path.gsub("/", "") 
else 
  host = 'localhost' 
  port = Mongo::Connection::DEFAULT_PORT 
  database_name = case Padrino.env 
    when :development then 'tweetup_dev' 
    when :production  then 'tweetup' 
    when :test        then 'tweetup_test' 
  end 
end

Обе операции вставки через задачу rake (для проверки подключения к БД) и приложение, пытающееся извлечь из БД в heroku, постоянно терпят неудачу с этой ошибкой:

2011-04-09T08:02:29+00:00 app[web.1]: Mongoid::Errors::InvalidDatabase 
- Database should be a Mongo::DB, not NilClass.: 
2011-04-09T08:02:29+00:00 app[web.1]:  /app/.bundle/gems/ruby/1.9.1/ 
gems/mongoid-2.0.0/lib/mongoid/config.rb:195:in `master' 
2011-04-09T08:02:29+00:00 app[web.1]:  (eval):2:in `master'

Я могу подтвердить, что база данных работает и работает в MongoHQ, и я создал в ней документ через веб-интерфейс через удаленное соединение MongoHQ через предоставленные данные из конфигурации heroku - длинные данные.

В этот момент озадачен тем, в чем проблема.

У кого-нибудь есть какие-либо подсказки или указания относительно того, что я могу делать здесь неправильно?Изменились ли различные опции конфигурации в mongoid с 2.0.0?Я должен упомянуть, что это первый раз, когда я пытался использовать MongoHQ с Mongoid.

В этот момент я собираюсь разбить, раскрутить экземпляр Amazon EC2 и просто использовать локальный хост MongoDB, но в конечном итоге работающийэто на героку и с MongoHQ имеет гораздо больше смысла.

спасибо за любую помощь, Дэрил.

...