0. 説明
エラーが出た時にメモっておく場所
同じようなエラーが出た際に参考になればいいかなと思う
エラーに新しい種類が増えた際にタグを追加する
タグが5個しか付与できなかったのでMongoDB専用に変更
どうやらメモ用に使うのは適していないようだ。
1. mongoDB 起動時
コンソールログ
*********************************************************************
ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
解決策
$ sudo mkdir /data/db
コンソールログ
2014-08-01T09:10:08.272+0900 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
2014-08-01T09:10:08.272+0900 [initandlisten] dbexit:
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to close listening sockets...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to flush diaglog...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: going to close sockets...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: waiting for fs preallocator...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: lock for final commit...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: final commit...
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: closing all files...
2014-08-01T09:10:08.272+0900 [initandlisten] closeAllFiles() finished
2014-08-01T09:10:08.272+0900 [initandlisten] shutdown: removing fs lock...
2014-08-01T09:10:08.273+0900 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
2014-08-01T09:10:08.273+0900 [initandlisten] dbexit: really exiting now
解決策
$ sudo mongod
2. railsに入れた時
Input command
$ rails g mongoid:config
output log
/gems/mongo-1.3.1/lib/mongo/cursor.rb:419:in `construct_query_message': uninitialized constant BSON::ByteBuffer (NameError)
cursor.rbの419行目を見てみる
cursor.rb
418 def construct_query_message
419 message = BSON::ByteBuffer.new
420 message.put_int(query_opts)
421 BSON::BSON_RUBY.serialize_cstr(message, "#{@db.name}.#{@collection.name}")
422 message.put_int(@skip)
423 message.put_int(@limit)
424 spec = query_contains_special_fields? ? construct_query_spec : @selector
425 message.put_binary(BSON::BSON_CODER.serialize(spec, false).to_s)
426 message.put_binary(BSON::BSON_CODER.serialize(@fields, false).to_s) if @fields
427 message
428 end
どうやらBSON::ByteBuffer.newで落ちているようですね
新しく作れないということは、既に存在している可能性がある、もしくはinitializerできないみたいなエラーでしょうか
あとは、バージョンの互換性などが気になります。
解決策
- mongoidのバージョンを4系にすること
- bson,mongo,bson_extはGemfileに入っているか。それぞれのバージョンは適切か
- config/initializersに余計なファイルが入っていないか
無事、以下のログが吐かれれば成功となります。
create config/mongoid.yml
3. DBにinsertする時
実装
test_test_test.rb
test = test_test_test.new(:test => "test", :created => Time.now)
test.save
コンソールログ
LoadError - Unable to autoload constant test_test_test, expected フォルダ名/test_test_test.rb to define it:
activesupport (4.1.2) lib/active_support/dependencies.rb:481:in `load_missing_constant'
activesupport (4.1.2) lib/active_support/dependencies.rb:180:in `const_missing'
activesupport (4.1.2) lib/active_support/dependencies.rb:512:in `load_missing_constant'
activesupport (4.1.2) lib/active_support/dependencies.rb:180:in `const_missing'
app/controllers/nikkei_stock_average_controller.rb:29:in `scrapingPastNikkeiStockAverageValues'
actionpack (4.1.2) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.1.2) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.1.2) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.1.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (4.1.2) lib/active_support/callbacks.rb:113:in `call'
activesupport (4.1.2) lib/active_support/callbacks.rb:229:in `block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:229:in `block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:166:in `block in halting'
activesupport (4.1.2) lib/active_support/callbacks.rb:86:in `run_callbacks'
actionpack (4.1.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (4.1.2) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.1.2) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.1.2) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.1.2) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.1.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.1.2) lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
activerecord (4.1.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.1.2) lib/abstract_controller/base.rb:136:in `process'
actionview (4.1.2) lib/action_view/rendering.rb:30:in `process'
actionpack (4.1.2) lib/action_controller/metal.rb:196:in `dispatch'
actionpack (4.1.2) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.1.2) lib/action_controller/metal.rb:232:in `block in action'
actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:82:in `dispatch'
actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:50:in `call'
actionpack (4.1.2) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.1.2) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.1.2) lib/action_dispatch/routing/route_set.rb:678:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/flash.rb:254:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.1.2) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.1.2) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
activerecord (4.1.2) lib/active_record/migration.rb:380:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.1.2) lib/active_support/callbacks.rb:82:in `run_callbacks'
actionpack (4.1.2) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
better_errors (1.1.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (1.1.0) lib/better_errors/middleware.rb:56:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.2) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.2) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.2) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.2) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.2) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.1.2) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.1.2) lib/rails/engine.rb:514:in `call'
railties (4.1.2) lib/rails/application.rb:144:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in `service'
/usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/usr/local/Cellar/ruby/2.1.1/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
解決策
test_test_test.rb
test = TestTestTest.new(:test => "test", :created => Time.now)
test.save
キャメルケースで書かなくてはならないらしい
TODO 要調査(mongodbのソース読む)