Class: DBPurger::PurgeTableScanner

Inherits:
Object
  • Object
show all
Includes:
PurgeTableHelper
Defined in:
lib/db-purger/purge_table_scanner.rb

Overview

DBPurger::PurgeTableScanner scans the entire table in batches use the search_proc to determine what ids to delete

Instance Method Summary collapse

Constructor Details

#initialize(database, table) ⇒ PurgeTableScanner

Returns a new instance of PurgeTableScanner.



8
9
10
11
12
# File 'lib/db-purger/purge_table_scanner.rb', line 8

def initialize(database, table)
  @database = database
  @table = table
  @num_deleted = 0
end

Instance Method Details

#modelObject



14
15
16
# File 'lib/db-purger/purge_table_scanner.rb', line 14

def model
  @model ||= @database.models.detect { |m| m.table_name == @table.name.to_s }
end

#purge!Object



18
19
20
21
22
23
24
25
26
# File 'lib/db-purger/purge_table_scanner.rb', line 18

def purge!
  ActiveSupport::Notifications.instrument('purge.db_purger',
                                          table_name: @table.name) do |payload|
    purge_in_batches!
    purge_search_tables
    payload[:deleted] = @num_deleted
  end
  @num_deleted
end