Skip to content

Instantly share code, notes, and snippets.

@jschoolcraft
Created April 7, 2011 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jschoolcraft/909032 to your computer and use it in GitHub Desktop.
Save jschoolcraft/909032 to your computer and use it in GitHub Desktop.
Stole this from someone else, but updated to work with Rails 3
namespace :db do
desc "Reset all sequences. Run after data imports"
task :reset_sequences, :model_class, :needs => :environment do |t, args|
if args[:model_class]
classes = Array(eval args[:model_class])
else
puts "using all defined active_record models"
classes = []
Dir.glob(RAILS_ROOT + '/app/models/**/*.rb').each { |file| require file }
ActiveRecord::Base.subclasses.select { |c|c.base_class == c}.sort_by(&:name).each do |klass|
classes << klass
end
end
classes.each do |klass|
puts "reseting sequence on #{klass.table_name}"
ActiveRecord::Base.connection.reset_pk_sequence!(klass.table_name)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment