Module: IdRandomizer::PostgreSQL

Defined in:
lib/id_randomizer/postgresql.rb

Class Method Summary collapse

Class Method Details

.randomize_ids(except) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/id_randomizer/postgresql.rb', line 5

def self.randomize_ids(except)
  blacklist = %w(schema_migrations ar_internal_metadata)
  blacklist += except.is_a?(Array) ? except : [except]
  models = ActiveRecord::Base.descendants.reject do |model|
    model.table_name.nil? || model.sequence_name.nil? || blacklist.include?(model.table_name)
  end
  models.each do |model|
    val = rand(100..1024)
    model.connection.execute("SELECT setval('#{model.sequence_name}', #{val});")
  end
end