Leon's Blogging

Coding blogging for hackers.

Custom Seed File

| Comments

db 下有個 seed.rb,可以寫一些假資料 or 要匯入的資料,在執行 rake db:seed 就會執行了
但是當有多個檔案,就可以自己寫個 task 來覆蓋原本的 rake db:seed

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#檔案可以放在 db/seeds 資料夾底下
#db/seeds/hello.rb
puts 'hello'

#lib/tasks/custom_seed.rake
namespace :db do
  namespace :seed do
    Dir[File.join(Rails.root, 'db', 'seeds', '*.rb')].each do |filename|
      task_name = File.basename(filename, '.rb').intern
      task task_name => :environment do
        load(filename) if File.exist?(filename)
      end
    end
  end
end

接著執行

1
2
rake db:seed:hello
#=>hello

參考文件:
Adding a custom seed file

Comments