【问题标题】:Don't know how to build task 'db:seed_fu'不知道如何构建任务 'db:seed_fu'
【发布时间】:2016-03-17 14:39:09
【问题描述】:

我刚刚将 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 中止!

不知道如何构建任务 'db:seed_fu'

但是当我这样做时

rake db:seed_fu RAILS_ENV='test'

然后seed_fu 很好地为我的测试数据库播种。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 rake


    【解决方案1】:

    想通了——问题出在我的 Gemfile 中。因为我将seed-fu gem 添加到test-group 中,然后在development-environment 中,这是我运行rake db:seed_fu_test 任务的默认设置,所以没有看到seed_fu gem。

    因此,当将gem 'seed-fu' 行移动到我的Gemfile 中的:development-group 时,问题就解决了。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 2016-01-20
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 2018-07-13
      相关资源
      最近更新 更多