Commit fc2b0569 authored by Igor Drozdov's avatar Igor Drozdov

Comply with database related API changes

Within Rails 6.1 there have been a lot of work related to
database and how to make sharding possible. Some methods
have been removed/renamed. Let's comply with those changes.
parent f140b7a1
...@@ -114,7 +114,7 @@ module Gitlab ...@@ -114,7 +114,7 @@ module Gitlab
['up', version, '********** NO FILE **********'] ['up', version, '********** NO FILE **********']
end end
# output # output
puts "\ndatabase: #{ActiveRecord::Base.connection_config[:database]}\n\n" puts "\ndatabase: #{ActiveRecord::Base.connection_db_config.database}\n\n"
puts "#{'Status'.center(8)} #{'Migration ID'.ljust(14)} Migration Name" puts "#{'Status'.center(8)} #{'Migration ID'.ljust(14)} Migration Name"
puts "-" * 50 puts "-" * 50
(db_list + file_list).sort_by { |_, version, _| version }.each do |status, version, name| (db_list + file_list).sort_by { |_, version, _| version }.each do |status, version, name|
......
...@@ -61,7 +61,7 @@ module Gitlab ...@@ -61,7 +61,7 @@ module Gitlab
end end
def self.config def self.config
default_config_hash = ActiveRecord::Base.configurations.find_db_config(Rails.env)&.config || {} default_config_hash = ActiveRecord::Base.configurations.find_db_config(Rails.env)&.configuration_hash || {}
default_config_hash.with_indifferent_access.tap do |hash| default_config_hash.with_indifferent_access.tap do |hash|
# Match config/initializers/database_config.rb # Match config/initializers/database_config.rb
......
...@@ -45,8 +45,8 @@ module Gitlab ...@@ -45,8 +45,8 @@ module Gitlab
def labels_for_class(klass) def labels_for_class(klass)
{ {
host: klass.connection_config[:host], host: klass.connection_db_config.host,
port: klass.connection_config[:port], port: klass.connection_db_config.configuration_hash[:port],
class: klass.to_s class: klass.to_s
} }
end end
......
...@@ -269,7 +269,7 @@ RSpec.describe 'Database schema' do ...@@ -269,7 +269,7 @@ RSpec.describe 'Database schema' do
sql = <<~SQL sql = <<~SQL
SELECT table_name, column_name, data_type SELECT table_name, column_name, data_type
FROM information_schema.columns FROM information_schema.columns
WHERE table_catalog = '#{ApplicationRecord.connection_config[:database]}' WHERE table_catalog = '#{ApplicationRecord.connection_db_config.database}'
AND table_schema = 'public' AND table_schema = 'public'
AND table_name NOT LIKE 'pg_%' AND table_name NOT LIKE 'pg_%'
AND data_type = 'jsonb' AND data_type = 'jsonb'
......
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe Gitlab::Database::LoadBalancing::LoadBalancer, :request_store do RSpec.describe Gitlab::Database::LoadBalancing::LoadBalancer, :request_store do
let(:pool_spec) { ActiveRecord::Base.connection_pool.spec } let(:pool) { Gitlab::Database.create_connection_pool(2) }
let(:pool) { ActiveRecord::ConnectionAdapters::ConnectionPool.new(pool_spec) }
let(:conflict_error) { Class.new(RuntimeError) } let(:conflict_error) { Class.new(RuntimeError) }
let(:lb) { described_class.new(%w(localhost localhost)) } let(:lb) { described_class.new(%w(localhost localhost)) }
......
...@@ -242,10 +242,10 @@ RSpec.describe Gitlab::Database::WithLockRetries do ...@@ -242,10 +242,10 @@ RSpec.describe Gitlab::Database::WithLockRetries do
let(:timing_configuration) { [[0.015.seconds, 0.025.seconds], [0.015.seconds, 0.025.seconds]] } # 15ms, 25ms let(:timing_configuration) { [[0.015.seconds, 0.025.seconds], [0.015.seconds, 0.025.seconds]] } # 15ms, 25ms
it 'executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds' do it 'executes `SET LOCAL lock_timeout` using the configured timeout value in milliseconds' do
expect(ActiveRecord::Base.connection).to receive(:execute).with("SAVEPOINT active_record_1").and_call_original expect(ActiveRecord::Base.connection).to receive(:execute).with("RESET idle_in_transaction_session_timeout; RESET lock_timeout").and_call_original
expect(ActiveRecord::Base.connection).to receive(:execute).with('RESET idle_in_transaction_session_timeout; RESET lock_timeout').and_call_original expect(ActiveRecord::Base.connection).to receive(:execute).with("SAVEPOINT active_record_1", "TRANSACTION").and_call_original
expect(ActiveRecord::Base.connection).to receive(:execute).with("SET LOCAL lock_timeout TO '15ms'").and_call_original expect(ActiveRecord::Base.connection).to receive(:execute).with("SET LOCAL lock_timeout TO '15ms'").and_call_original
expect(ActiveRecord::Base.connection).to receive(:execute).with("RELEASE SAVEPOINT active_record_1").and_call_original expect(ActiveRecord::Base.connection).to receive(:execute).with("RELEASE SAVEPOINT active_record_1", "TRANSACTION").and_call_original
subject.run { } subject.run { }
end end
......
...@@ -329,7 +329,7 @@ RSpec.describe Gitlab::Database do ...@@ -329,7 +329,7 @@ RSpec.describe Gitlab::Database do
expect(pool) expect(pool)
.to be_kind_of(ActiveRecord::ConnectionAdapters::ConnectionPool) .to be_kind_of(ActiveRecord::ConnectionAdapters::ConnectionPool)
expect(pool.spec.config[:pool]).to eq(5) expect(pool.db_config.pool).to eq(5)
ensure ensure
pool.disconnect! pool.disconnect!
end end
...@@ -339,7 +339,7 @@ RSpec.describe Gitlab::Database do ...@@ -339,7 +339,7 @@ RSpec.describe Gitlab::Database do
pool = described_class.create_connection_pool(5, '127.0.0.1') pool = described_class.create_connection_pool(5, '127.0.0.1')
begin begin
expect(pool.spec.config[:host]).to eq('127.0.0.1') expect(pool.db_config.host).to eq('127.0.0.1')
ensure ensure
pool.disconnect! pool.disconnect!
end end
...@@ -349,8 +349,8 @@ RSpec.describe Gitlab::Database do ...@@ -349,8 +349,8 @@ RSpec.describe Gitlab::Database do
pool = described_class.create_connection_pool(5, '127.0.0.1', 5432) pool = described_class.create_connection_pool(5, '127.0.0.1', 5432)
begin begin
expect(pool.spec.config[:host]).to eq('127.0.0.1') expect(pool.db_config.host).to eq('127.0.0.1')
expect(pool.spec.config[:port]).to eq(5432) expect(pool.db_config.configuration_hash[:port]).to eq(5432)
ensure ensure
pool.disconnect! pool.disconnect!
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment