2013-12-14 2 views
0

저는 아직 Ruby on Rails의 초보자이며, 나는 Heroku의 완전한 초보자입니다.Heroku가 내 Rails 앱에서 'pg'보석을 인식하지 못합니다. Gemfile

개발 및 프로덕션 모두에서 Rails 응용 프로그램을 sqlite3 대신 postgres를 사용하도록 설정했으며 "gem 'pg'"를 내 Gemfile에 넣었습니다. 그리고 로컬에서, 내 애플 리케이션은 잘 작동합니다.

헤로 쿠에서 작동하게하는 것은 다른 이야기입니다. 앱을 Heroku에 푸시 한 후 "heroku run rake db : migrate"라고 입력하면 "rake aborted!"데이터베이스 어댑터에 대해 'postgresql'이 지정되었지만 보석이로드되지 않았습니다. gem 'pg'을 Gemfile. "

예, gem 'pg'이 (가) 내 Gemfile에 있지만이 오류가 계속 발생합니다.

무엇을 제공합니까? 여기

source 'https://rubygems.org' 
ruby '2.0.0' 
gem 'rails',  '4.0.1' 
gem 'pg' 

group :assets do 
end 

gem 'bcrypt-ruby', '~> 3.1.2' 
gem 'haml' 
gem 'devise', '3.0.0.rc' 
gem 'protected_attributes' 
gem 'sass-rails', '4.0.1' 
gem 'uglifier', '2.1.1' 
gem 'coffee-rails', '4.0.1' 
gem 'jquery-rails', '3.0.4' 
gem 'turbolinks', '1.1.1' 
gem 'jbuilder', '1.0.2' 
gem 'knockout-rails' 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 

group :doc do 
    gem 'sdoc', '0.3.20', require: false 
end 

group :production do 
    gem 'unicorn' 
    gem 'rails_12factor', '0.0.2' 
end 

내 database.yml을 같은입니다 내용은 다음과 같습니다 : 여기

내 Gemfile 지금의 모습입니다

development: 
    adapter: postgresql 
    encoding: unicode 
    database: financemeter 
    pool: 5 
    password: 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: financemeter 
    pool: 5 
    timeout: 5000 

production: 
    adapter: postgresql 
    database: dbe67fgdnnqg88 
    pool: 5 
    timeout: 5000 
    user: njatxlpjjrzfoe 
    password: HULxOtPALAk4FnzZe-_737TvPc 

그리고 여기에 내가 Heroku가에 마이그레이션 할 때 전체 오류 로그입니다 . (다시 말하지만 로컬에서는 괜찮습니다. 문제가된다면 MacBook에서 로컬로 작업하고 있습니다.)

/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/connection_adapters/connection_specification.rb:58:in `rescue in resolve_hash_connection' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/connection_adapters/connection_specification.rb:55:in `resolve_hash_connection' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/connection_adapters/connection_specification.rb:46:in `resolve_string_connection' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/connection_adapters/connection_specification.rb:32:in `spec' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/connection_handling.rb:39:in `establish_connection' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/railtie.rb:176:in `block (2 levels) in <class:Railtie>' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/lazy_load_hooks.rb:27:in `each' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/lazy_load_hooks.rb:27:in `on_load' 
/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.1/lib/active_record/railtie.rb:174:in `block in <class:Railtie>' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/initializable.rb:30:in `instance_exec' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/initializable.rb:30:in `run' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/initializable.rb:55:in `block in run_initializers' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/initializable.rb:54:in `run_initializers' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/application.rb:215:in `initialize!' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/app/config/environment.rb:5:in `<top (required)>' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `require' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `block in require' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:214:in `load_dependency' 
/app/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.1/lib/active_support/dependencies.rb:229:in `require' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/application.rb:189:in `require_environment!' 
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.1/lib/rails/application.rb:250:in `block in run_tasks_blocks' 
+0

번들을 설치 할 수 있는지 확인하는 데 도움이 귀하의 database.yml을 파일

username: someuser_on_pg host: localhost 

희망에 사용자 이름과 호스트를 지정해야 할 수도 있습니다 그 뒤에 Gemfile과 Gemfile.lock을 커밋하십시오. 배포 시도 후 – lsaffie

+0

나는 그것을 시도 - 그것은 도움이되지 않았다. Heroku가 업데이트되지 않아서 기쁩니다. "git push heroku master"를 사용하면 변경 사항이 적용되었음을 알리지 않고 간단한 "Everything up-date"메시지를 반환합니다. – drumwolf

+0

gemfile에 'pg'보석이 두 번 있다는 것을 알고 있습니까? ': production' 그룹에서 제거한 다음'bundle update','bundle install'을 실행하고 밀어 넣으십시오. – Tim

답변

1

컴퓨터에 postgresql을 설치 했습니까?
그렇지 않은 경우 homebrew를 사용하여 pg를 설치하십시오.
설치되면 pg 데이터 저장소를 초기화해야합니다.

또한, 귀하의 페이지 설치 방법을 따라, 당신은

+0

그래, 나 로컬 PG, 내 REPO 로컬 잘 작동 한 당신에게 Heroku 대시 보드 계정 또는 명령 행에 Heroku가 포스트 그레스 서버의 인스턴스를 추가 않았다 @drumwolf – drumwolf

+1

에게 Heroku의 애드온 :.? – Galuga

+0

가 나는 것 같아 Heroku가-PostgreSQL의 추가를 . "궁극적으로"--database = postgresql "명령을 사용하여 처음부터 완전히 새로운 Rails 응용 프로그램을 만든 다음 내 기존 응용 프로그램에서 새 응용 프로그램으로 모든 자산, 컨트롤러, 모델, 뷰 등을 마이그레이션하고 마침내 github에서 그들을 합병했다. 매우 유쾌하지 않았다. 그러나 그것은 일했다. – drumwolf

관련 문제