我刚刚将seed-fu gem添加到我的应用程序中以播种我的测试数据库:
group :test do
gem 'seed-fu'
end
我做了一个自定义rake任务(在/lib/tasks/db.rake
中),用于播种仅我的测试数据库:
namespace :db do
desc "seed_fu only in test-database"
task seed_fu_test: :environment do
Rails.env = 'test'
puts "Seeding will be made in test-base ONLY!"
Rake::Task["db:seed_fu"].execute
end
end
如果我rake -T | grep seed
,那么我的新定制任务将显示在其他种子任务中:
rake db:seed # Load the seed data from db/seeds.rb
rake db:seed_fu # Loads seed data for the current environment
rake db:seed_fu_test # seed_fu only in test-database
现在当我rake db:seed_fu_test
时,我得到了
rake aborted!
不知道如何构建任务&db; seed_fu'
但是当我这样做时
rake db:seed_fu RAILS_ENV='test'
然后seed_fu很好地为我的测试数据库播种。
答案 0 :(得分:0)
想出来 - 问题出在我的Gemfile中。因为我将seed-fu gem添加到test
- 组然后在development
- 环境中,这也是我运行rake db:seed_fu_test
任务的默认值,所以没有看到seed_fu gem。
因此,当将gem 'seed-fu'
行移动到Gemfile中的:development
- 组时,问题就解决了。