2011-04-24 4 views
3

heroku rake db:migrate 이후에 다음과 같은 오류가 발생합니다.Heroku db : 마이 그 레이션 및 faker

rake aborted! 

no such file to load -- faker 

/app/Rakefile:7 

(See full trace by running task with --trace) 

(in /app)* 

이전 답변을보고 require 'faker' 파일을 task :populate => :environment do 아래의 첫 줄에서 task :populate => :environment do 줄로 이동하려고했습니다. 그것은 작동하지 않았다.

나는 gemfile에서 faker를 주석 처리했다 (그리고 dev 환경에서만 존재했다). 그리고 나는 bundle install를 실행했다. 그것은 작동하지 않았다.

나는 heroku와 faker를 사용할 수 없다는 사실에 대해 정말로 두려워합니다. 저 좀 도와 주 시겠어요?

+0

내 대답이 도움이되지 않는다면,'Gemfile'의 내용을 게시하면 도움이 될 것입니다. –

답변

11

Gemfile에있는 생산 젬 (그룹에 속하지 않은)의 일부입니까?

Heroku는 기본적으로 test 또는 development 개의 보석을 설치하지 않습니다.

그래서, 당신은, 예를 들어, 단순히을 변경하여 당신은 개발 보석을 설치하는 Heroku가 지시 할 수 있습니다

... 또는

source 'http://rubygems.org' 

gem 'rails', '3.0.7' 
gem 'sqlite3-ruby', :require => 'sqlite3' 
gem 'mysql' 
gem 'faker' 

source 'http://rubygems.org' 

gem 'rails', '3.0.7' 
gem 'sqlite3-ruby', :require => 'sqlite3' 
gem 'mysql' 

group :development do 
    gem 'faker' 
end 

을 변화시킬 수 Heroku 환경 변수BUNDLE_WITHOUT, 그룹을 e에 나열합니다. xxx.

기본값은 :

heroku config:set BUNDLE_WITHOUT="development:test" 

그래서 당신이 좋아하는 무언가를 사용할 수 있습니다 : 응용 프로그램이 생산 환경에서 faker의 사용을 필요로하는 경우

heroku config:set BUNDLE_WITHOUT="test" 

그러나, 당신은 단지를 포함 아마한다 기본 Gemfile 그룹의 gem.

+0

내 gemfile은 매우 간단하고 "gem 'faker', '0.3.1'"줄은 "group : development do"아래에 있고 외부에는 없습니다. 당신의 문장에 따르면, 나는 그것을 밖으로 놓으려고 노력했고 그것은 효과가있었습니다, 대단히 감사합니다. –

+0

@Brandon 나는 당신의 대답을 단지 제안으로 편집하려고했다. 물론 되돌릴 수 있습니다. – cregox

0

당신은 또한 그룹 수 개발, 보석 '사기꾼'를 않습니다 필요 => 거짓 끝

(또는)

당신의 필요 '사기꾼'라인은 내부로 파일을 긁어 넣어 작업

관련 문제