2011-04-24 87 views
3

heroku rake db:migrate我收到以下错误后:Heroku的DB:迁移和摊贩

rake aborted! 

no such file to load -- faker 

/app/Rakefile:7 

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

(in /app)* 

我看到了以前的答案,我试图从第一线以下task :populate => :environment dosample_data.rake文件转移到require 'faker'行。它没有工作。

我在gemfile中评论faker(它只出现在开发环境中),我执行了bundle install。它没有工作。

我真的很害怕我不能与heroku一起使用faker。你可以帮我吗?

+0

如果我下面的回答没有帮助,发布你的'Gemfile'的内容可能会有所帮助。 – 2011-04-24 21:29:34

回答

11

faker Gemfile中的部分生产宝石(任何组之外)?

Heroku默认不安装testdevelopment宝石。

所以,你可以,例如,简单地改变

source 'http://rubygems.org' 

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

group :development do 
    gem 'faker' 
end 

source 'http://rubygems.org' 

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

或者...

可以指示的Heroku安装发展的宝石,通过改变Heroku环境变量BUNDLE_WITHOUT,其中列出组为e xclude

默认值为:

heroku config:set BUNDLE_WITHOUT="development:test" 

所以你可能会使用类似:

heroku config:set BUNDLE_WITHOUT="test" 

但是,如果你的应用需要在其生产环境中使用的faker,你应该只包括gem在默认的Gemfile组中。

+0

我的gem文件非常简单,行:“gem'faker','0.3.1'”在“group:development do”之下,而不是在外面。根据你的句子,我试图把它放在外面,它的工作,非常感谢。 – 2011-04-24 21:47:29

+0

@Brandon我的意思是编辑你的答案只是一个建议。当然,请随时恢复它。 – cregox 2014-09-22 04:18:49

0

你也 组:发展做 宝石“骗子”,:要求=>假 结束

(或)

就把你需要“骗子”线耙文件在里面任务