Sha256: 73c90c3484869480b2716fc7e6ed538875bd38c4a9ec616935907a9ee8f4b57a
Contents?: true
Size: 1.14 KB
Versions: 4
Compression:
Stored size: 1.14 KB
Contents
require 'sequel' Inferno::Application.boot(:db) do init do use :logging require 'yaml' Sequel::Model.plugin :json_serializer config_path = File.expand_path('database.yml', File.join(Dir.pwd, 'config')) config = YAML.load_file(config_path)[ENV['APP_ENV']] .merge(logger: Inferno::Application['logger']) connection_attempts_remaining = ENV.fetch('MAX_DB_CONNECTION_ATTEMPTS', '10').to_i connection_retry_delay = ENV.fetch('DB_CONNECTION_RETRY_DELAY', '5').to_i connection = nil loop do connection = Sequel.connect(config) break rescue StandardError => e connection_attempts_remaining -= 1 if connection_attempts_remaining.positive? Inferno::Application['logger'].error("Unable to connect to database: #{e.message}") Inferno::Application['logger'].error("#{connection_attempts_remaining} connection attempts remaining.") sleep connection_retry_delay next end raise end connection.sql_log_level = :debug register('db.config', config) register('db.connection', connection) end start do Sequel.extension :migration end end
Version data entries
4 entries across 4 versions & 1 rubygems