Sha256: f5b7198b0ef2386fe90c632b84192e6ac0faf41be5f069265d0c795066cbd015
Contents?: true
Size: 933 Bytes
Versions: 1
Compression:
Stored size: 933 Bytes
Contents
require 'activerecord_reset_pk_sequence/version' module ActiveRecord class Base class << self def reset_pk_sequence case ActiveRecord::Base.connection.adapter_name when 'SQLite' ActiveRecord::Base.connection.execute(sqlite_update_seq_sql) when 'Mysql' ActiveRecord::Base.connection.execute(mysql_update_seq_sql) when 'PostgreSQL' ActiveRecord::Base.connection.reset_pk_sequence!(table_name) else raise 'Task not implemented for this DB adapter' end end private def sqlite_update_seq_sql new_max_id = maximum(primary_key) || 0 "UPDATE sqlite_sequence SET seq = #{new_max_id} WHERE name = '#{table_name}';" end def mysql_update_seq_sql new_max_id = maximum(primary_key) + 1 || 1 "ALTER TABLE '#{table_name}' AUTO_INCREMENT = #{new_max_id};" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord_reset_pk_sequence-0.3.0 | lib/activerecord_reset_pk_sequence.rb |