尝试从Heroku连接到MongoHQ时Padrino中的Mongoid错误

时间:2011-04-09 08:29:10

标签: mongodb heroku mongoid padrino mongohq

我不断收到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远程连接通过web接口创建了一个文档,通过heroku config提供的详细信息 - 详细信息。

在这一点上难以理解问题所在。

任何人都有任何关于我可能做错的线索或指示 这里?从2.0.0开始,mongoid中的各种配置选项是否已更改? 我应该提到这是我第一次尝试使用MongoHQ Mongoid。

在这一点上,我即将解决,启动Amazon EC2实例和 只使用localhost MongoDB但最终在heroku上运行它并使用MongoHQ更有意义。

感谢您的帮助, 达里尔。

0 个答案:

没有答案