Skip to content

Instantly share code, notes, and snippets.

@dburger
Created May 24, 2009 06:22
Show Gist options
  • Select an option

  • Save dburger/116982 to your computer and use it in GitHub Desktop.

Select an option

Save dburger/116982 to your computer and use it in GitHub Desktop.
require 'active_record/fixtures'
namespace :data do
# pipe separated values and yaml for now
EXTENSIONS = ['psv', 'yml']
desc 'Truncate and load tables with seed data'
task :seed => :environment do
EXTENSIONS.each do |ext|
Dir[File.join(Rails.root, "db/seed/*.#{ext}")].each do |filename|
table_name = File.basename(filename, ".#{ext}")
sql = "TRUNCATE TABLE #{table_name};"
puts sql
ActiveRecord::Base.connection.execute(sql)
send(:"load_#{ext}", filename, table_name)
end
end
end
def load_psv(filename, table_name)
sql = %Q{
LOAD DATA INFILE '#{filename}'
INTO TABLE #{table_name} FIELDS TERMINATED BY '|';
}
puts sql
ActiveRecord::Base.connection.execute(sql)
end
def load_yml(filename, table_name)
Fixtures.create_fixtures('db/seed', table_name)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment