Class: ActiveRecord::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/reset_table_sequence.rb

Direct Known Subclasses

DayPlanner::Log, DayPlanner::Task

Class Method Summary collapse

Class Method Details

.reset_table_sequenceObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 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