heroku rake db:migrate > 没有要加载的文件 -- faker

2023-11-27

我第一次尝试将 Rails 3 应用程序部署到 Heroku。似乎可以向上推,但是当我尝试跑步时

heroku rake db:migrate

我收到以下错误:

rake aborted!
no such file to load -- faker
/app/98c71cc3-375f-4397-9de3-034dd7268be3/home/Rakefile:7
(See full trace by running task with --trace)
(in /app/98c71cc3-375f-4397-9de3-034dd7268be3/home)

这是我的 rakefile(第 7 行是最后一行):

require File.expand_path('../config/application', __FILE__)
require 'rake'

SampleApp::Application.load_tasks

现在我有一个名为 Sample_data.rake 的任务,它使用 faker gem 用示例数据填充开发数据库,​​该任务具有以下行:

require 'faker'

在顶部,这一定是导致问题的原因。

我怎样才能修复这个错误,或者有没有办法让heroku忽略这个任务文件?无论如何,我不想用无意义的示例数据填充生产版本。

顺便说一句,faker 仅在我的 gemsfile 中的开发环境中活跃:

# gemfiles for the rspec testing environment
group :development do
  gem 'rspec-rails', '2.5.0'
  gem 'annotate-models', '1.0.4'
  gem 'faker', '0.3.1'
end

将 require 语句移至任务中。 例如

# sample_data.rake
require 'faker'

task :sample_data => :environment do
 # ...
end

to

# sample_data.rake
task :sample_data => :environment do
  require 'faker'

 # ...
end

这样,只有在调用任务时才需要该库。

另一种选择是在你的 rake 文件中不需要 Faker。 事实上,当bundle在开发中执行时,Bundler就已经加载了它。

如果您不希望 Bundler 加载 Gem,请使用

gem 'faker', '0.3.1', :require => false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

heroku rake db:migrate > 没有要加载的文件 -- faker 的相关文章

随机推荐