Skip to content

Commit 1315e0b

Browse files
committed
feat: batch delete versions and tags using delete instead of destroy for efficiency
1 parent f31e8df commit 1315e0b

File tree

4 files changed

+8
-3
lines changed

4 files changed

+8
-3
lines changed

lib/pact_broker/domain/version.rb

+5
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ class Version < Sequel::Model
1212

1313
dataset_module do
1414
include PactBroker::Repositories::Helpers
15+
16+
def delete
17+
PactBroker::Domain::Tag.where(version: self).delete
18+
super
19+
end
1520
end
1621

1722
def after_create

lib/pact_broker/pacts/repository.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def delete_all_pact_publications_between consumer_name, options
105105
def delete_all_pact_versions_between consumer_name, options
106106
consumer = pacticipant_repository.find_by_name(consumer_name)
107107
provider = pacticipant_repository.find_by_name(options.fetch(:and))
108-
PactVersion.where(consumer: consumer, provider: provider).destroy
108+
PactVersion.where(consumer: consumer, provider: provider).delete
109109
end
110110

111111
def find_latest_pact_versions_for_provider provider_name, tag = nil

lib/pact_broker/verifications/repository.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def delete_by_provider_version_id version_id
123123
def delete_all_verifications_between(consumer_name, options)
124124
consumer = pacticipant_repository.find_by_name(consumer_name)
125125
provider = pacticipant_repository.find_by_name(options.fetch(:and))
126-
PactBroker::Domain::Verification.where(provider: provider, consumer: consumer).destroy
126+
PactBroker::Domain::Verification.where(provider: provider, consumer: consumer).delete
127127
end
128128

129129
def pact_version_id_for pact

lib/pact_broker/versions/repository.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def delete_orphan_versions consumer, provider
8989
PactBroker::Domain::Version
9090
.where(pacticipant_id: [consumer.id, provider.id])
9191
.exclude(id: (version_ids_with_pact_publications + version_ids_with_verifications).uniq)
92-
.destroy
92+
.delete
9393
end
9494
end
9595
end

0 commit comments

Comments
 (0)