Rails 7.2 defaults:
Highscore.connection
# => #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x000000000080e8 env_name="development" role=:writing>
With config.active_record.permanent_connection_checkout = :disallowed
:
Highscore.connection
# Called deprecated `ActiveRecord::Base.connection` method. (ActiveRecord::ActiveRecordError)
# Either use `with_connection` or `lease_connection`.
Highscore.lease_connection
# => #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x000000000103b0 env_name="development" role=:writing>
Highscore.connection_pool.active_connection?
# => #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x000000000103b0 env_name="development" role=:writing>
Highscore.release_connection
# => true
Highscore.connection_pool.active_connection?
# => nil
Highscore.connection_pool.active_connection?
# => nil
Highscore.first
# => #<Highscore:0x00007d3751d853c8 id: 1, name: "Anonymous", score: 1, created_at: "2024-04-24 06:12:16.208562000 +0000", updated_at: "2024-04-24 06:12:16.208562000 +0000">
Highscore.connection_pool.active_connection?
# => nil
Highscore.with_connection do
Highscore.connection_pool.active_connection?
end
# => #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x0000000002a7d8 env_name="development" role=:writing>
Highscore.connection_pool.active_connection?
# => nil
Highscore.with_connection do
Highscore.lease_connection
end
Highscore.connection_pool.active_connection?
# => #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x00000000038270 env_name="development" role=:writing>
In general, you should probably add
to your environment configuration if you want to catch bad behaviour.