Module: TypedEAV::FieldDeletion
- Defined in:
- lib/typed_eav/field_deletion.rb
Overview
Explicit, resumable deletion for large Field value populations. The public
Field#destroy_with_values_in_batches! contract requires a persisted
field_dependent: :destroy Field, positive batch size, no open transaction,
and one shared Field/Value/ValueVersion connection pool.
Class Method Summary collapse
Class Method Details
.destroy!(field, batch_size: 1_000) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/typed_eav/field_deletion.rb', line 11 def destroy!(field, batch_size: 1_000) validate!(field, batch_size) last_id = 0 loop do deleted = delete_batch!(field, last_id, batch_size) break if deleted.empty? last_id = deleted.last end finalize!(field, batch_size) end |