class ActiveRecord::Base

Public Class Methods

reset_table_sequence() click to toggle source
# File lib/active_record/reset_table_sequence.rb, line 3
def self.reset_table_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 'PostgreSQL'
    ActiveRecord::Base.connection.reset_pk_sequence!(table_name)
  when 'Mysql2'
    ActiveRecord::Base.connection.execute("ALTER TABLE #{table_name} AUTO_INCREMENT = 1;")
  else
    raise "Task not implemented for this DB adapter"
  end
end