49 lines
1023 B
Ruby
49 lines
1023 B
Ruby
module Msf::DBManager::Adapter
|
|
#
|
|
# CONSTANTS
|
|
#
|
|
|
|
# The adapter to use to establish database connection.
|
|
ADAPTER = 'postgresql'
|
|
|
|
#
|
|
# Attributes
|
|
#
|
|
|
|
# Returns the list of usable database drivers
|
|
def drivers
|
|
@drivers ||= []
|
|
end
|
|
attr_writer :drivers
|
|
|
|
# Returns the active driver
|
|
attr_accessor :driver
|
|
|
|
#
|
|
# Instance Methods
|
|
#
|
|
|
|
#
|
|
# Scan through available drivers
|
|
#
|
|
def initialize_adapter
|
|
ActiveRecord.default_timezone = :utc
|
|
|
|
if connection_established? && ApplicationRecord.connection_db_config.configuration_hash[:adapter] == ADAPTER
|
|
dlog("Already established connection to #{ADAPTER}, so reusing active connection.")
|
|
self.drivers << ADAPTER
|
|
self.driver = ADAPTER
|
|
else
|
|
begin
|
|
ApplicationRecord.establish_connection(adapter: ADAPTER)
|
|
ApplicationRecord.remove_connection
|
|
rescue Exception => error
|
|
@adapter_error = error
|
|
else
|
|
self.drivers << ADAPTER
|
|
self.driver = ADAPTER
|
|
end
|
|
end
|
|
end
|
|
end
|