Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to build task 'db:populate'

  1 namespace :db do
  2   desc "Fill database with sample videos"
  3   task :populate => :environment do
  4     require 'faker'
  5     Rake::Task['db:reset'].invoke
  6     100.times do |n|
  7       headline = Faker::Lorem.sentence(3)
  8       video = Faker::Lorem.words(5)
  9       Video.create!(:headline => headline,
 10                   :video => video)
 11     end
 12   end
 13 end

I currently have this rake task in lib/tasks/sample_data.rb

When running rake db:populate I get the error, Don't know how to build task 'db:populate'. How do I get around this?

Notes: I am a newbie in Rails/Ruby. I am using Rails 3.

like image 512
Teej Avatar asked Mar 17 '11 03:03

Teej


2 Answers

Try renaming the file to sample_data.rake.

I was able to get your example working (replacing the internals of the task with a p statement) by putting your code in a file called testomatic.rake in lib/tasks.

like image 148
Mike A. Avatar answered Oct 15 '22 01:10

Mike A.


I also had this problem. In Finder, the file name was sample_data.rake, but upon clicking "Get Info" for the file, I discovered the full file name was sample_data.rake.erb -- ensure that's not your problem.

like image 41
Ryan Tinker Avatar answered Oct 15 '22 02:10

Ryan Tinker