Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # frozen_string_literal: true
- module Databases
- # This ConnectionService class is dynamically connections to remote databases
- class ConnectionService
- attr_reader :database, :company_name
- def initialize(company)
- @company_name = company.name
- @database = company.database
- end
- def call
- connection
- end
- private
- def connection
- Octopus.setup do |config|
- config.environments = [Rails.env.to_sym]
- config.shards = {
- company_name.downcase.to_sym => company_database_configs
- }
- end
- rescue StandardError => exception
- exception.message
- end
- def company_database_configs
- {
- adapter: 'postgresql',
- database: database.name,
- username: database.username,
- password: database.password,
- host: database.host,
- encoding: 'unicode'
- }
- end
- end
- end
Add Comment
Please, Sign In to add comment