我不断收到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更有意义。
感谢您的帮助, 达里尔。