在 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
。它没有用。我真的很害怕我不能在 heroku 上使用 faker。请你帮助我好吗?
最佳答案
faker
是 Gemfile 中生产 gems 的一部分(在任何组之外)吗?
Heroku 默认不安装 test
或 development
gems。
因此,例如,您可以简单地更改
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 环境变量
BUNDLE_WITHOUT
来 指示 Heroku 安装开发 gem,该变量列出了要排除的组。默认为:
heroku config:set BUNDLE_WITHOUT="development:test"
所以你可能会使用类似的东西:
heroku config:set BUNDLE_WITHOUT="test"
但是,如果您的应用程序需要在其生产环境中使用
faker
,您可能应该只将 gem 包含在默认的 Gemfile 组中。
关于Heroku 数据库 :migrate and faker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773245/