2012-08-23 4 views
2

최근에 내 레일 데이터베이스를 sqlite3에서 mysql으로 전환했으며 이후 서버를 액세스하려고 할 때 ConnectionNotEstablished 오류가 발생했습니다.sqlite3에서 mysql으로 전환 한 후 ActiveRecord :: ConnectionNotEstablished

다음은 오류의 전체 스택 추적입니다.

ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished): 
    activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection' 
    activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection' 
    activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection' 
    activerecord (3.2.8) lib/active_record/query_cache.rb:67:in `rescue in call' 
    activerecord (3.2.8) lib/active_record/query_cache.rb:61:in `call' 
    activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 
    activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `_run__318842653__call__302530175__callbacks' 
    activesupport (3.2.8) lib/active_support/callbacks.rb:405:in `__run_callback' 
    activesupport (3.2.8) lib/active_support/callbacks.rb:385:in `_run_call_callbacks' 
    activesupport (3.2.8) lib/active_support/callbacks.rb:81:in `run_callbacks' 
    actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:65:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/remote_ip.rb:31:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
    railties (3.2.8) lib/rails/rack/logger.rb:26:in `call_app' 
    railties (3.2.8) lib/rails/rack/logger.rb:16:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
    rack (1.4.1) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.4.1) lib/rack/runtime.rb:17:in `call' 
    activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    rack (1.4.1) lib/rack/lock.rb:15:in `call' 
    actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:in `call' 
    railties (3.2.8) lib/rails/engine.rb:479:in `call' 
    railties (3.2.8) lib/rails/application.rb:223:in `call' 
    rack (1.4.1) lib/rack/content_length.rb:14:in `call' 
    railties (3.2.8) lib/rails/rack/log_tailer.rb:17:in `call' 
    rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service' 
    /home/aaron/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' 
    /home/aaron/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' 
    /home/aaron/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 

데이터베이스와의 연결이 정상적으로 작동하는 것 같습니다. 나는 db : migrate를 실행할 수 있으며, 레일즈 콘솔뿐만 아니라 잘 돌아가며 데이터에 액세스 할 수있다. 부팅 할 때 환경에 따라 오류가 약간 다르게 작동합니다. 그것은 테스트에서 잘 실행되는 것 같습니다. 개발 중에는 브라우저의 페이지를 방문 할 때 오류가 발생하고, 프로덕션에서는 부팅 할 때 오류가 발생합니다.

이 문제는 여기에 제시된 내용과 거의 동일합니다. Rails and MySQL - ActiveRecord::ConnectionNotEstablished in production environment, 그러나 답변이 모두 저에게 효과가 없었습니다.

나는 모든 코드는 여기 추진해 왔습니다 : https://github.com/Aaronneyer/aaronneyer.com

+0

.gitignore에 .sass-cache를 추가하십시오. –

답변

2

정확한 원인은 아직 확실하지 않지만 어쨌든 더 이상 사용되지 않는 newrelic 보석을 제거하여 해결할 수있었습니다.

+0

저는 Rake cron 작업 (PostgreSQL 사용)에서 다양한 종류의 ActiveRecord 연결 오류를 문자 그대로 여러 시간 동안 디버깅하는 데 많은 시간을 보냈으며 귀하의 의견이 내 문제를 해결 한 이후로 고맙다고 말하고 싶습니다. 엄청 고마워! –

+1

Howdy - New Relic을 위해 일하고 newrelic_rpm 보석의 버전 3.6.4에서이 문제의 근본 원인을 다뤘습니다. 두통이 생겨서 미안해. – grumbler

0

당신은 모두 소켓 및 호스트 설정을 가지고있다. 하나 선택하여 문제를 해결할 수 있습니다.

+0

아니, 그냥 소켓과 호스트로했습니다. 각각의 경우에 똑같은 일이 일어났습니다. – Aaronneyer

관련 문제