2011-10-16 4 views
25

내 앱이 헤로 쿠에 배포 할 수 있도록 애셋을 사전 컴파일하려고하는데 다음 오류가 발생합니다.레일 레이크 에셋 : 프로덕션 용으로 프리 컴파일

하여 실행하는 경우 :

RAILS_ENV=production bundle exec rake assets:precompile 

오류 : 나는 다음과 같은 Gemfile

gem "rails", "~> 3.1.0" 

group :production do 
    gem 'pg' 
end 

group :development, :test do 
    gem 'sqlite3' 
end 

gem 'sass-rails', "~> 3.1.0" 

group :assets do 
    gem 'coffee-rails', "~> 3.1.0" 
    gem 'uglifier' 
    gem 'compass', '~> 0.12.alpha.0' 
    gem 'html5-boilerplate' 
end 

개발 SQLite는과 생산 PostgreSQL을에 사용하기 때문에 내가 많이 시도했지만

/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 
rake aborted! 
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.) 

수 ' 이 일을하지 마라.

이 중요하지만 내 database.yml을이처럼 보이는 경우 나도 몰라 :

production: 
    adapter: postgresql 
    host: localhost 
    database: db 
    encoding: unicode 
    username: user 
    password: '' 
+1

당신이 삼나무 스택에 이것을 시도 ... 다시 옛 물건을 가지고 죄송합니다

:production 그룹
실행 bundle을 제거하는 동안? 'heroku create --stack cedar' – daniel

답변

54

오래된 질문 만 허용 대답은 정말 질문에 대답하지 않습니다 - 난 그냥 검색이 발견 그래서 나는 그것이 적절하다고 생각한다.

오류의 원인은 gem 'pg'이 (가) 프로덕션 젬 그룹에 있다는 것입니다.
rake assets:precompile을 실행하면 프로덕션 환경에 액세스 할 수 있습니다. 따라서 프로덕션 환경 을로드하려고하지만 모든 종속성이 설치되어 있지 않습니다..

RAILS_ENV=production bundle exec rails server을 실행하면 비슷한 오류가 발생할 수 있습니다.

나는 두 개의 서로 다른 솔루션

1) 앱의 루트에서 .bundle/config 파일이 있는지 봐 생각할 수 있습니다. 그럴 경우 WITHOUT :production 또는 이와 비슷한 메시지가 표시되는지 확인하십시오. 해당 행이나 전체 .bundle 디렉토리를 제거하고 bundle을 다시 실행하십시오.

gem :development, :production do 
    gem 'pg' 
end 

Gemfile에서

2)

+4

죄송합니다. 실수로 downvoted했지만 지금은 취소 할 수 없습니다. (- 실제로 유용한 답변을 찾았습니다. –

+0

@SherwinYu 그냥 downvote 아이콘을 다시 클릭하면 downvote가 취소됩니다 .. –

+0

@DavidTuite 불행하게도 , 잠시있다면 당신은 할 수 없습니다 - 응답이 편집되지 않는 한 당신의 downvote가 잠긴다. –

관련 문제