Module: InitializerConnections
- Defined in:
- lib/initializer_connections.rb
Class Method Summary collapse
- .raise_database_connection_made_error ⇒ Object
-
.raise_if_new_database_connection ⇒ Object
Raises if new database connections established within the block.
Class Method Details
.raise_database_connection_made_error ⇒ Object
27 28 29 30 31 |
# File 'lib/initializer_connections.rb', line 27 def self.raise_database_connection_made_error = "Database connection should not be called during initializers. Read more at https://docs.gitlab.com/ee/development/rails_initializers.html#database-connections-in-initializers" raise end |
.raise_if_new_database_connection ⇒ Object
Raises if new database connections established within the block
NOTE: this does not prevent existing connections that is already checked out from being used. You will need other means to prevent that such as by clearing all connections as implemented in the ‘:clear_active_connections_again` initializer for routes
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/initializer_connections.rb', line 11 def self.raise_if_new_database_connection return yield if Gitlab::Utils.to_boolean(ENV['SKIP_RAISE_ON_INITIALIZE_CONNECTIONS']) previous_connection_counts = ActiveRecord::Base.connection_handler.connection_pool_list.to_h do |pool| [pool.db_config.name, pool.connections.size] end yield new_connection_counts = ActiveRecord::Base.connection_handler.connection_pool_list.to_h do |pool| [pool.db_config.name, pool.connections.size] end raise_database_connection_made_error unless previous_connection_counts == new_connection_counts end |