【问题标题】:MongoDB error with Mongoid, Heroku, Device, MongoHQ and RailsMongoDB 错误与 Mongoid、Heroku、Device、MongoHQ 和 Rails
【发布时间】:2012-08-09 11:57:21
【问题描述】:

我正在处理当前部署到heroku 的a simple app - 它正在使用mongoid、设备并且可以在本地主机中非常容易地创建用户登录,但在heroku 的生产环境中却不行。可以尝试创建账号,提交后报错。

我认为我用于生产的 mongoid.yml 需要更改,但我不知道如何更改。

我的heroku config 有以下内容:

 === Config Vars for bookfoo
DATABASE_URL:        postgres://jeibucpexp:bVZzGaGPUeGylwmA7dyE@ec2-107-20-186-97.compute-1.amazonaws.com/jeibucpexp
GEM_PATH:            vendor/bundle/ruby/1.9.1
LANG:                en_US.UTF-8
MONGOHQ_URL:         mongodb://heroku:14bc6d476e6449c952d6350b07e89643@alex.mongohq.com:10065/app6153931
MONGOLAB_URI:        mongodb://heroku_app6153931:og03dk0hdrj7r8lsit51k6ah9n@ds037097-a.mongolab.com:37097/heroku_app6153931
PATH:                bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
RACK_ENV:            production
RAILS_ENV:           production
SHARED_DATABASE_URL: postgres://jeibucpexp:bVZzGaGPUeGylwmA7dyE@ec2-107-20-186-97.compute-1.amazonaws.com/jeibucpexp

mongoid.yml 具有 Heroku 中建议的以下内容:

development:
  sessions:
    default:
      database: bookfoo_app_development
      hosts:
        - localhost:27017
      options:
        consistency: :strong
  options:
test:
  sessions:
    default:
      database: bookfoo_app_test
      hosts:
        - localhost:27017
      options:
        consistency: :strong
production:
  sessions:
    default:
      uri: <%= ENV['MONGOHQ_URL'] %>
    options:
      skip_version_check: true
      safe: true

我的 gemfile 有以下内容:

source 'https://rubygems.org'

gem 'rails', '3.2.3'

group :development, :test do
  gem 'sqlite3'
    gem 'rspec-rails'
end

group :test do
    gem 'database_cleaner'
    gem 'mongoid-rspec'
    gem 'factory_girl_rails'
    gem 'email_spec'
    gem 'capybara'
    gem 'launchy'
end

group :production do
  gem 'thin'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
gem "mongoid", :git => "git://github.com/mongoid/mongoid.git"
gem "bson_ext"
gem "devise"

git push heroku master 之后,它给了我以下提示:

There is a configuration error with the current mongoid.yml.
       Problem:
       No database provided for session configuration: :options.
       Summary:
       Each session configuration must provide a database so Mongoid knows where the default database to persist to. What was provided was: {"skip_version_check"=>true, "safe"=>true}.
       Resolution:
       If configuring via a mongoid.yml, ensure that within your :options section a :database value for the session's default database is defined.
       Example:
       \_\_development:
       \_\_\_\_sessions:
       \_\_\_\_\_\_options:
       \_\_\_\_\_\_\_\_database: my_app_db
       \_\_\_\_\_\_\_\_hosts:
       \_\_\_\_\_\_\_\_\_\_- localhost:27017

【问题讨论】:

    标签: ruby-on-rails-3 heroku device mongohq mongoid3


    【解决方案1】:

    mongoid.yml 应该是这样(我的缩进错了):

    production:
      sessions:
        default:
          uri: <%= ENV['MONGOHQ_URL'] %>
          options:
            skip_version_check: true
            safe: true
    

    【讨论】:

    • 感谢您。我已经在找几个小时了,然后我意识到这是缩进:/
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2012-02-22
    • 2016-05-12
    • 2012-07-14
    • 2011-07-14
    • 2023-03-24
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多