提交 5150802d 编写于 作者: S Sean McGivern

Merge branch 'sh-disable-internal-ids-available-check' into 'master'

Always use internal ID tables in development and production

Closes #60718

See merge request gitlab-org/gitlab-ce!27544
......@@ -87,12 +87,16 @@ class InternalId < ApplicationRecord
end
def available?
@available_flag ||= ActiveRecord::Migrator.current_version >= REQUIRED_SCHEMA_VERSION # rubocop:disable Gitlab/PredicateMemoization
return true unless Rails.env.test?
Gitlab::SafeRequestStore.fetch(:internal_ids_available_flag) do
ActiveRecord::Migrator.current_version >= REQUIRED_SCHEMA_VERSION
end
end
# Flushes cached information about schema
def reset_column_information
@available_flag = nil
Gitlab::SafeRequestStore[:internal_ids_available_flag] = nil
super
end
end
......
---
title: Always use internal ID tables in development and production
merge_request: 27544
author:
type: fixed
......@@ -93,7 +93,7 @@ describe InternalId do
before do
described_class.reset_column_information
# Project factory will also call the current_version
expect(ActiveRecord::Migrator).to receive(:current_version).twice.and_return(InternalId::REQUIRED_SCHEMA_VERSION - 1)
expect(ActiveRecord::Migrator).to receive(:current_version).at_least(:once).and_return(InternalId::REQUIRED_SCHEMA_VERSION - 1)
end
let(:init) { double('block') }
......@@ -104,6 +104,15 @@ describe InternalId do
expect(init).to receive(:call).with(issue).and_return(val)
expect(subject).to eq(val + 1)
end
it 'always attempts to generate internal IDs in production mode' do
allow(Rails.env).to receive(:test?).and_return(false)
val = rand(1..100)
generator = double(generate: val)
expect(InternalId::InternalIdGenerator).to receive(:new).and_return(generator)
expect(subject).to eq(val)
end
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册