Guest User

Untitled

a guest
Nov 26th, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. # frozen_string_literal: true
  2.  
  3. module Databases
  4. # This ConnectionService class is dynamically connections to remote databases
  5. class ConnectionService
  6. attr_reader :database, :company_name
  7.  
  8. def initialize(company)
  9. @company_name = company.name
  10. @database = company.database
  11. end
  12.  
  13. def call
  14. connection
  15. end
  16.  
  17. private
  18.  
  19. def connection
  20. Octopus.setup do |config|
  21. config.environments = [Rails.env.to_sym]
  22.  
  23. config.shards = {
  24. company_name.downcase.to_sym => company_database_configs
  25. }
  26. end
  27. rescue StandardError => exception
  28. exception.message
  29. end
  30.  
  31. def company_database_configs
  32. {
  33. adapter: 'postgresql',
  34. database: database.name,
  35. username: database.username,
  36. password: database.password,
  37. host: database.host,
  38. encoding: 'unicode'
  39. }
  40. end
  41. end
  42. end
Add Comment
Please, Sign In to add comment