无法使MongoLab数据库在heroku上工作

时间:2015-09-24 14:21:50

标签: ruby-on-rails heroku mongoid

我已将我的应用程序部署到heroku但我可以看到该应用程序,但该应用程序未访问mongolab数据库。我已尝试使用

在控制台中重置数据库
$ heroku run rake db:reset

但是我收到了这个错误。

failed with error 13: "not authorized on ENV['MONGOID_DATABASE'] to execute command { dropDatabase: 1 }"

See https://github.com/mongodb/mongo/blob/master/docs/errors.md

不确定我做错了什么,我之前没有在heroku上设置mongoid应用,这是我的第一次

-UPDATE -

以下是我所拥有的日志的结尾,似乎表明帖子无效。

$ heroku logs

 2015-09-25T16:20:15.770927+00:00 heroku[router]: at=info method=POST path="/managers" host=beta.herokuapp.com request_id=95709038-02e9-45b1-8300-0aebc287f6c1 fwd="162.239.42.196" dyno=web.1 connect=0ms service=178ms status=500 bytes=1480
 2015-09-25T16:20:15.770408+00:00 app[web.1]: D, [2015-09-25T16:20:15.770342 #3] DEBUG -- :   MOPED: 10.152.165.9:29821 QUERY        database=ENV['MONGOID_DATABASE'] collection=managers selector={"email"=>"sample@email.com"} flags=[] limit=-1 skip=0 batch_size=nil fields={:_id=>1} runtime: 1.0352ms

以下是路由器日志...

$ heroku logs --ps router
2015-09-25T20:40:46.935184+00:00 heroku[router]: at=info method=POST path="/managers" host=beta.herokuapp.com request_id=c1673463-a69f-4111-bd4d-01fdb5516ad0 fwd="162.239.42.196" dyno=web.1 connect=2ms service=109ms status=500 bytes=1480
2015-09-25T20:40:47.285029+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=beta.herokuapp.com request_id=1e998283-b02b-4cc5-83f6-7996a6991531 fwd="162.239.42.196" dyno=web.1 connect=1ms service=2ms status=200 bytes=143
2015-09-26T04:45:32.833599+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=beta.herokuapp.com request_id=59ccc2e7-18d4-4c08-8b08-a653f5d11714 fwd="2602:30a:2ef2:ac40:acb1:9144:79b4:affb,66.249.88.51" dyno=web.1 connect=1ms service=4ms status=200 bytes=143

我也看到它无法查询数据库

2015-09-26T05:03:39.852170+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"WVGY+XLD...A=", "manager"=>{"name"=>"Blah Blah", "company"=>"Blah Blah CO.", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
2015-09-26T05:03:40.138442+00:00 app[web.1]: D, [2015-09-26T05:03:40.138321 #3] DEBUG -- :   MOPED: 10.152.165.9:29821 COMMAND      database=admin command={:ismaster=>1} runtime: 23.5306ms
2015-09-26T05:03:40.146776+00:00 app[web.1]: Completed 500 Internal Server Error in 294ms
2015-09-26T05:03:40.146782+00:00 app[web.1]: Completed 500 Internal Server Error in 294ms
2015-09-26T05:03:40.152205+00:00 app[web.1]: 
2015-09-26T05:03:40.152208+00:00 app[web.1]: Moped::Errors::QueryFailure (The operation: #<Moped::Protocol::Query
2015-09-26T05:03:40.152209+00:00 app[web.1]:   @length=112
2015-09-26T05:03:40.152211+00:00 app[web.1]:   @request_id=4
2015-09-26T05:03:40.152212+00:00 app[web.1]:   @response_to=0
2015-09-26T05:03:40.152214+00:00 app[web.1]:   @op_code=2004
2015-09-26T05:03:40.152215+00:00 app[web.1]:   @flags=[]
2015-09-26T05:03:40.152216+00:00 app[web.1]:   @full_collection_name="ENV['MONGOID_DATABASE'].managers"
2015-09-26T05:03:40.152218+00:00 app[web.1]:   @skip=0
2015-09-26T05:03:40.152219+00:00 app[web.1]:   @limit=-1
2015-09-26T05:03:40.152222+00:00 app[web.1]:   @selector={"email"=>"sample@email.com"}
2015-09-26T05:03:40.152224+00:00 app[web.1]:   @fields={:_id=>1}>
2015-09-26T05:03:40.152225+00:00 app[web.1]: failed with error 13: "not authorized for query on ENV['MONGOID_DATABASE'].managers"
2015-09-26T05:03:40.152227+00:00 app[web.1]: 
2015-09-26T05:03:40.152228+00:00 app[web.1]: See https://github.com/mongodb/mongo/blob/master/docs/errors.md

1 个答案:

答案 0 :(得分:0)

我明白了。数据库未连接,因为mongoid.yml文件不正确。我调整了yml文件,并将URI添加到heroku变量中,并且它正常工作。