Class: Mihari::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/mihari/database.rb

Overview

Database

Class Method Summary collapse

Class Method Details

.closeObject

Close DB connection(s)



166
167
168
169
170
# File 'lib/mihari/database.rb', line 166

def close
  return unless connected?

  ActiveRecord::Base.connection_handler.clear_active_connections!
end

.connectObject

Establish DB connection



149
150
151
152
153
154
# File 'lib/mihari/database.rb', line 149

def connect
  return if connected?

  ActiveRecord::Base.establish_connection Mihari.config.database_url.to_s
  ActiveRecord::Base.logger = Logger.new($stdout) if Mihari.development?
end

.connected?Boolean

Returns:

  • (Boolean)


159
160
161
# File 'lib/mihari/database.rb', line 159

def connected?
  ActiveRecord::Base.connected?
end

.migrate(direction) ⇒ Object

DB migration

Parameters:

  • direction (Symbol)


142
143
144
# File 'lib/mihari/database.rb', line 142

def migrate(direction)
  schemas.each { |schema| schema.migrate direction }
end

.with_db_connectionObject



172
173
174
175
176
177
178
179
# File 'lib/mihari/database.rb', line 172

def with_db_connection
  Mihari::Database.connect unless connected?
  yield
rescue ActiveRecord::StatementInvalid
  Mihari.logger.error("DB migration is not yet complete. Please run 'mihari db migrate'.")
ensure
  Mihari::Database.close
end