Class: LooseForeignKeys::CleanerService
- Inherits:
-
Object
- Object
- LooseForeignKeys::CleanerService
- Defined in:
- app/services/loose_foreign_keys/cleaner_service.rb
Overview
rubocop: disable CodeReuse/ActiveRecord
Direct Known Subclasses
Constant Summary collapse
- DELETE_LIMIT =
1000
- UPDATE_LIMIT =
500
Instance Method Summary collapse
- #async_delete? ⇒ Boolean
- #async_nullify? ⇒ Boolean
- #execute ⇒ Object
-
#initialize(loose_foreign_key_definition:, connection:, deleted_parent_records:, logger: Sidekiq.logger, with_skip_locked: false) ⇒ CleanerService
constructor
A new instance of CleanerService.
- #update_column_to? ⇒ Boolean
Constructor Details
#initialize(loose_foreign_key_definition:, connection:, deleted_parent_records:, logger: Sidekiq.logger, with_skip_locked: false) ⇒ CleanerService
Returns a new instance of CleanerService.
9 10 11 12 13 14 15 |
# File 'app/services/loose_foreign_keys/cleaner_service.rb', line 9 def initialize(loose_foreign_key_definition:, connection:, deleted_parent_records:, logger: Sidekiq.logger, with_skip_locked: false) @loose_foreign_key_definition = loose_foreign_key_definition @connection = connection @deleted_parent_records = deleted_parent_records @with_skip_locked = with_skip_locked @logger = logger end |
Instance Method Details
#async_delete? ⇒ Boolean
23 24 25 |
# File 'app/services/loose_foreign_keys/cleaner_service.rb', line 23 def async_delete? loose_foreign_key_definition.on_delete == :async_delete end |
#async_nullify? ⇒ Boolean
27 28 29 |
# File 'app/services/loose_foreign_keys/cleaner_service.rb', line 27 def async_nullify? loose_foreign_key_definition.on_delete == :async_nullify end |
#execute ⇒ Object
17 18 19 20 21 |
# File 'app/services/loose_foreign_keys/cleaner_service.rb', line 17 def execute result = connection.execute(build_query) { affected_rows: result.cmd_tuples, table: loose_foreign_key_definition.from_table } end |
#update_column_to? ⇒ Boolean
31 32 33 |
# File 'app/services/loose_foreign_keys/cleaner_service.rb', line 31 def update_column_to? loose_foreign_key_definition.on_delete == :update_column_to end |