class Immigrate::Database

Public Instance Methods

connection() click to toggle source
# File lib/immigrate/database.rb, line 38
def connection
  ActiveRecord::Base.connection
end
create_fdw_extension() click to toggle source
# File lib/immigrate/database.rb, line 3
def create_fdw_extension
  enable_extension :postgres_fdw
end
create_server_connection(server) click to toggle source
# File lib/immigrate/database.rb, line 11
    def create_server_connection server
      server_config = database_configuration[Rails.env][server.to_s]
      execute <<-SQL
        CREATE SERVER #{server}
        FOREIGN DATA WRAPPER postgres_fdw
        OPTIONS (host '#{server_config['host']}',
                 port '#{server_config['port']}',
                 dbname '#{server_config['dbname']}')
      SQL
    end
create_user_mapping(server) click to toggle source
# File lib/immigrate/database.rb, line 22
    def create_user_mapping server
      server_config = database_configuration[Rails.env][server.to_s]
      execute <<-SQL
        CREATE USER MAPPING FOR #{current_user}
        SERVER #{server}
        OPTIONS (user '#{server_config['user']}',
                 password '#{server_config['password']}')
      SQL
    end
current_user() click to toggle source
# File lib/immigrate/database.rb, line 32
def current_user
  execute("SELECT CURRENT_USER").first['current_user']
end
database_configuration() click to toggle source
# File lib/immigrate/database.rb, line 42
def database_configuration
  yaml = Pathname.new('config/immigrate.yml')
  YAML.load(ERB.new(yaml.read).result)
end
drop_fdw_extension() click to toggle source
# File lib/immigrate/database.rb, line 7
def drop_fdw_extension
  disable_extension :postgres_fdw
end