Skip to content

Commit 78d31c4

Browse files
committed
feat: move migrations on feature branch to run last
1 parent 262af75 commit 78d31c4

10 files changed

+8
-18
lines changed

db/migrations/20180521_create_latest_verification_ids.rb db/migrations/20180723_create_latest_verification_ids.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
create_table(:latest_verification_id_for_pact_version_and_provider_version, charset: 'utf8') do
99
foreign_key :pact_version_id, :pact_versions, nil: false, on_delete: :cascade
1010
foreign_key :provider_version_id, :versions, nil: false, on_delete: :cascade
11-
foreign_key :provider_id, :pacticipants, nil: false, on_delete: :cascade
11+
foreign_key :provider_id, :pacticipants, nil: false, on_delete: :cascade # not required, but useful to avoid extra joins
1212
foreign_key :verification_id, :verifications, nil: false, on_delete: :cascade, unique: true
1313
index [:pact_version_id, :provider_version_id], unique: true, name: "unq_latest_verifid_pvid_provid"
1414
end

db/migrations/20180523_recreate_views.rb db/migrations/20180726_recreate_views.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
on lv.pact_version_id = pp.pact_version_id"
1313
)
1414

15-
#TODO
15+
# TODO
1616
#drop_view(:latest_matrix)
1717
#drop_view(:latest_verification_id_for_consumer_version_and_provider)
1818
#drop_view(:latest_matrix_for_consumer_version_and_provider_version)
19-
19+
#drop_table(:materialized_matrix)
20+
#drop_table(:materialized_head_matrix)
2021
end
2122

2223
down do

lib/pact_broker/pacts/repository.rb

+2-7
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,8 @@ def update id, params
4747
end
4848

4949
def update_latest_pact_publication_ids(pact_publication)
50-
table = AllPactPublications.db[:latest_pact_publication_ids_by_consumer_versions]
51-
count = table.where(consumer_version_id: pact_publication.consumer_version_id, provider_id: pact_publication.provider_id).count
52-
if count == 0
53-
table.insert(consumer_version_id: pact_publication.consumer_version_id, provider_id: pact_publication.provider_id, pact_publication_id: pact_publication.id)
54-
else
55-
table.where(consumer_version_id: pact_publication.consumer_version_id, provider_id: pact_publication.provider_id).update(pact_publication_id: pact_publication.id)
56-
end
50+
latest_pact_publication_params = { consumer_version_id: pact_publication.consumer_version_id, provider_id: pact_publication.provider_id, pact_publication_id: pact_publication.id }
51+
AllPactPublications.db[:latest_pact_publication_ids_by_consumer_versions].insert_ignore.insert(latest_pact_publication_params)
5752
end
5853

5954
def delete params

lib/pact_broker/verifications/repository.rb

+2-8
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,8 @@ def create verification, provider_version_number, pact
3030
end
3131

3232
def update_latest_verification_id verification
33-
if PactBroker::Domain::Verification.db.table_exists?(:latest_verification_id_for_pact_version_and_provider_version)
34-
table = PactBroker::Domain::Verification.db[:latest_verification_id_for_pact_version_and_provider_version]
35-
if table.where(pact_version_id: verification.pact_version_id, provider_version_id: verification.provider_version_id).count == 0
36-
table.insert(pact_version_id: verification.pact_version_id, provider_version_id: verification.provider_version_id, provider_id: verification.provider_version.pacticipant_id, verification_id: verification.id)
37-
else
38-
table.where(pact_version_id: verification.pact_version_id, provider_version_id: verification.provider_version_id).update(verification_id: verification.id)
39-
end
40-
end
33+
latest_verification_params = { pact_version_id: verification.pact_version_id, provider_version_id: verification.provider_version_id, provider_id: verification.provider_version.pacticipant_id, verification_id: verification.id }
34+
PactBroker::Domain::Verification.db[:latest_verification_id_for_pact_version_and_provider_version].insert_ignore.insert(latest_verification_params)
4135
end
4236

4337
def find consumer_name, provider_name, pact_version_sha, verification_number

0 commit comments

Comments
 (0)