Class: DBPurger::PurgeTable
- Inherits:
-
Object
- Object
- DBPurger::PurgeTable
- Includes:
- PurgeTableHelper
- Defined in:
- lib/db-purger/purge_table.rb
Overview
DBPurger::PurgeTable is used to delete table from tables in batches if possible
Instance Method Summary collapse
-
#initialize(database, table, purge_field, purge_value) ⇒ PurgeTable
constructor
A new instance of PurgeTable.
- #model ⇒ Object
- #purge! ⇒ Object
Constructor Details
#initialize(database, table, purge_field, purge_value) ⇒ PurgeTable
Returns a new instance of PurgeTable.
8 9 10 11 12 13 14 |
# File 'lib/db-purger/purge_table.rb', line 8 def initialize(database, table, purge_field, purge_value) @database = database @table = table @purge_field = purge_field @purge_value = purge_value @num_deleted = 0 end |
Instance Method Details
#model ⇒ Object
16 17 18 |
# File 'lib/db-purger/purge_table.rb', line 16 def model @model ||= @database.models.detect { |m| m.table_name == @table.name.to_s } end |
#purge! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/db-purger/purge_table.rb', line 20 def purge! ActiveSupport::Notifications.instrument('purge.db_purger', table_name: @table.name, purge_field: @purge_field) do |payload| if model.primary_key purge_in_batches! else purge_all! end purge_search_tables payload[:deleted] = @num_deleted end @num_deleted end |