...@@ -24,7 +24,7 @@ module Projects ...@@ -24,7 +24,7 @@ module Projects
def propagate_projects_with_template def propagate_projects_with_template
loop do loop do
batch = project_ids_batch batch = Project.uncached { project_ids_batch }
bulk_create_from_template(batch) unless batch.empty? bulk_create_from_template(batch) unless batch.empty?
... ...
......
---
title: Disable Rails SQL query cache when applying service templates
merge_request:
author:
type: security
...@@ -70,7 +70,7 @@ describe Projects::PropagateServiceTemplate do ...@@ -70,7 +70,7 @@ describe Projects::PropagateServiceTemplate do
expect(project.pushover_service.properties).to eq(service_template.properties) expect(project.pushover_service.properties).to eq(service_template.properties)
end end
describe 'bulk update' do describe 'bulk update', :use_sql_query_cache do
let(:project_total) { 5 } let(:project_total) { 5 }
before do before do
... ...
......
...@@ -213,6 +213,12 @@ RSpec.configure do |config| ...@@ -213,6 +213,12 @@ RSpec.configure do |config|
ActionController::Base.cache_store = caching_store ActionController::Base.cache_store = caching_store
end end
config.around(:each, :use_sql_query_cache) do |example|
ActiveRecord::Base.cache do
example.run
end
end
# The :each scope runs "inside" the example, so this hook ensures the DB is in the # The :each scope runs "inside" the example, so this hook ensures the DB is in the
# correct state before any examples' before hooks are called. This prevents a # correct state before any examples' before hooks are called. This prevents a
# problem where `ScheduleIssuesClosedAtTypeChange` (or any migration that depends # problem where `ScheduleIssuesClosedAtTypeChange` (or any migration that depends
... ...
......