You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.0 KiB

module DatabaseConnectionHelper
def with_connection(options)
connection = ::Sequel.connect(options)
begin
yield connection
ensure
connection.disconnect
end
end
def with_connection_from_user(user, &block)
options = ::SequelRails.configuration.environment_for(Rails.env).merge(
'database' => user.database_name,
'username' => user.database_username,
'password' => user.database_password,
'host' => user.database_host
)
with_connection options, &block
end
def with_connection_from_api_key(api_key, &block)
user = api_key.user
options = ::SequelRails.configuration.environment_for(Rails.env).merge(
'database' => user.database_name,
'username' => api_key.db_role,
'password' => api_key.db_password,
'host' => user.database_host
)
with_connection options, &block
end
def with_do_connection(&block)
do_configuration = Cartodb.config[:do_metadata_database].merge(
'adapter' => 'postgresql'
)
with_connection do_configuration, &block
end
end