Вероятно, лучшее решение (и фактически то, которое теперь канонизировано по краю) - это иметь файл seed.rb в каталоге db, который вы загружаете из задачи rake.
Вот что Rails делает сейчас на грани (чтобы быть в Rails 3).
# db/seeds.rb
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
# Major.create(:name => 'Daley', :city => cities.first)
И затем новое рейк-задание (которое вы можете добавить в свой Rakefile):
desc 'Load the seed data from db/seeds.rb'
task :seed => :environment do
seed_file = File.join(Rails.root, 'db', 'seeds.rb')
load(seed_file) if File.exist?(seed_file)
end
Если вы настроите свой файл seed.rb таким образом, вы будете следовать новому соглашению и сможете удалить задачу rake seed при обновлении до Rails 3.
Кроме того, миграции не для данных. Насколько я знаю, это общепризнанное и универсальное мнение основной команды Rails.