class ActiveRecord::Base

Public Class Methods

reset_pk_sequence() click to toggle source
# File lib/activerecord-reset-pk-sequence.rb, line 5
def self.reset_pk_sequence
  case ActiveRecord::Base.connection.adapter_name
  when 'SQLite'
    new_max = maximum(primary_key) || 0
    update_seq_sql = "UPDATE sqlite_sequence SET seq = #{new_max} WHERE name = '#{table_name}';"
    ActiveRecord::Base.connection.execute(update_seq_sql)
  when 'Mysql'
    new_max = maximum(primary_key) + 1 || 1
    update_seq_sql = "ALTER TABLE '#{table_name}' AUTO_INCREMENT = #{new_max};"
    ActiveRecord::Base.connection.execute(update_seq_sql)
  when 'PostgreSQL'
    ActiveRecord::Base.connection.reset_pk_sequence!(table_name)
  else 
    raise "Task not implemented for this DB adapter"
  end 
end