class ActiveRecord::Base

Public Class Methods

clickhouse_connection(config) click to toggle source

Establishes a connection to the database that's used by all Active Record objects

# File lib/active_record/connection_adapters/clickhouse_adapter.rb, line 19
def clickhouse_connection(config)
  config = config.symbolize_keys

  if config[:connection]
    connection = {
      connection: config[:connection]
    }
  else
    port = config[:port] || 8123
    connection = {
      host: config[:host] || 'localhost',
      port: port,
      ssl: config[:ssl].present? ? config[:ssl] : port == 443,
      sslca: config[:sslca],
      read_timeout: config[:read_timeout],
      write_timeout: config[:write_timeout],
    }
  end

  if config.key?(:database)
    database = config[:database]
  else
    raise ArgumentError, 'No database specified. Missing argument: database.'
  end

  ConnectionAdapters::ClickhouseAdapter.new(logger, connection, { user: config[:username], password: config[:password], database: database }.compact, config)
end