不知道如何构建任务 'db:seed_fu'
Don't know how to build task 'db:seed_fu'
我刚刚将 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!
Don't know how to build task 'db:seed_fu'
但是当我做
rake db:seed_fu RAILS_ENV='test'
然后 seed_fu 为我的测试数据库播种。
弄清楚了 - 问题出在我的 Gemfile 中。因为我将 seed-fu gem 添加到 test
-group 中,然后在 development
-environment 中,这是我对 运行 和 rake db:seed_fu_test
任务的默认设置, seed_fu gem 没有看到。
因此,当将 gem 'seed-fu'
行移动到我在 Gemfile 中的 :development
-group 时,问题就解决了。
我刚刚将 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!
Don't know how to build task 'db:seed_fu'
但是当我做
rake db:seed_fu RAILS_ENV='test'
然后 seed_fu 为我的测试数据库播种。
弄清楚了 - 问题出在我的 Gemfile 中。因为我将 seed-fu gem 添加到 test
-group 中,然后在 development
-environment 中,这是我对 运行 和 rake db:seed_fu_test
任务的默认设置, seed_fu gem 没有看到。
因此,当将 gem 'seed-fu'
行移动到我在 Gemfile 中的 :development
-group 时,问题就解决了。