Heroku db:迁移和faker

时间:2011-04-24 21:05:19

标签: heroku

heroku rake db:migrate之后我收到以下错误:

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文件中sample_data.rake下面的行。它不起作用。

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

我真的很害怕我不能和foku一起使用faker。你能帮我吗?

2 个答案:

答案 0 :(得分:11)

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

默认情况下,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,其中列出排除组。

默认为:

heroku config:set BUNDLE_WITHOUT="development:test"

所以你可以使用类似的东西:

heroku config:set BUNDLE_WITHOUT="test"

但是,如果您的应用程序需要在其生产环境中使用faker,您可能只需将gem包含在默认的Gemfile组中。

答案 1 :(得分:0)

你也可以 组:发展做   gem'faker',:require => false 端

(或)

将rake文件的require'faker'行放在任务