module Cranium::Database
Public Class Methods
[](name)
click to toggle source
# File lib/cranium/database.rb, line 14 def self.[](name) @connections ||= {} @connections[name] ||= setup_connection(@definitions[name].connect_to, @definitions[name].retry_count, @definitions[name].retry_delay) end
connection()
click to toggle source
# File lib/cranium/database.rb, line 8 def self.connection @connection ||= setup_connection(Cranium.configuration.greenplum_connection_string) end
register_database(name, &block)
click to toggle source
# File lib/cranium/database.rb, line 23 def self.register_database(name, &block) @definitions ||= Cranium::DefinitionRegistry.new Cranium::DSL::DatabaseDefinition @definitions.register_definition name, &block end
Private Class Methods
setup_connection(connection_details, retry_count = 0, retry_delay = 0)
click to toggle source
# File lib/cranium/database.rb, line 33 def self.setup_connection(connection_details, retry_count = 0, retry_delay = 0) (retry_count + 1).times do |try_count| connection = if Cranium.configuration.log_queries Sequel.connect(connection_details, loggers: Cranium.configuration.loggers) else Sequel.connect(connection_details) end connection.extension :connection_validator connection.pool.connection_validation_timeout = -1 break connection rescue Sequel::DatabaseConnectionError (try_count == retry_count) ? raise : sleep(retry_delay) end end