Skip to content

Commit c02b5b2

Browse files
authored
Merge 1074225 into dcb8eae
2 parents dcb8eae + 1074225 commit c02b5b2

File tree

8 files changed

+26
-6
lines changed

8 files changed

+26
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010
.idea/
1111
Gemfile.lock
1212
gemfiles/*.gemfile.lock
13+
gemfiles/.bundle/
1314
log/

Appraisals

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ appraise 'activerecord-5' do
33
end
44

55
appraise 'activerecord-6' do
6-
gem 'activerecord', '< 6.1'
6+
gem 'activerecord', '< 6.2.0'
77
end

gemfiles/activerecord_6.gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
source "https://rubygems.org"
44

5-
gem "activerecord", "< 6.1"
5+
gem "activerecord", "< 6.2.0"
66

77
gemspec path: "../"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module Postgres
2+
module Vacuum
3+
class Compatibility
4+
ACTIVE_RECORD_VERSION = ::Gem::Version.new(::ActiveRecord::VERSION::STRING).release
5+
PRE_RAILS_6_1 = ACTIVE_RECORD_VERSION < ::Gem::Version.new('6.1.0')
6+
7+
def self.pre_rails_6_1?
8+
PRE_RAILS_6_1
9+
end
10+
11+
end
12+
end
13+
end

lib/postgres/vacuum/jobs/monitor_job.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ def reporter_class
8080
def with_each_db_name_and_connection
8181
databases = Set.new
8282
ActiveRecord::Base.connection_handler.connection_pools.map do |connection_pool|
83-
db_name = connection_pool.spec.config[:database]
83+
db_name = Postgres::Vacuum::Compatibility.pre_rails_6_1? ? connection_pool.spec.config[:database] : connection_pool.db_config.configuration_hash[:database]
84+
8485
# activerecord allocates a connection pool per call to establish_connection
8586
# multiple pools might interact with the same database so we use the
8687
# database name to dedup

lib/postgres/vacuum/monitor.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'active_record'
2+
require 'postgres/vacuum/compatibility'
23
require 'postgres/vacuum/configuration'
34
require 'postgres/vacuum/monitor/version'
45
require 'postgres/vacuum/monitor/query'

postgres-vacuum-monitor.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ Gem::Specification.new do |spec|
2626
spec.add_development_dependency 'bundler'
2727
spec.add_development_dependency 'coveralls_reborn', '>= 0.18.0'
2828
spec.add_development_dependency 'database_cleaner'
29-
spec.add_development_dependency 'rake', '>= 12.3.3'
29+
spec.add_development_dependency 'rake'
3030
spec.add_development_dependency 'rspec', '~> 3.2'
3131
spec.add_development_dependency 'salsify_rubocop'
3232

33-
spec.add_dependency 'activerecord', '>= 5', '< 6.1'
33+
spec.add_dependency 'activerecord', '< 6.2.0'
3434
spec.add_dependency 'pg', '>= 0.18', '< 2.0'
3535
end

spec/postgres/vacuum/jobs/monitor_job_spec.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,11 @@ class SecondPool < ActiveRecord::Base
157157
let(:name_change_db_config) { { name: 'my db' } }
158158

159159
before do
160-
allow(SecondPool.connection_pool.spec).to receive(:config).and_return(name_change_db_config)
160+
if Postgres::Vacuum::Compatibility.pre_rails_6_1?
161+
allow(SecondPool.connection_pool.spec).to receive(:config).and_return(name_change_db_config)
162+
else
163+
allow(SecondPool.connection_pool.db_config).to receive(:configuration_hash).and_return(name_change_db_config)
164+
end
161165
end
162166

163167
it "reports twice for two databases" do

0 commit comments

Comments
 (0)