Module: Dbviewer::DatabaseOperations::DatabaseInformation

Extended by:
ActiveSupport::Concern
Included in:
Dbviewer::DatabaseOperations
Defined in:
app/controllers/concerns/dbviewer/database_operations/database_information.rb

Instance Method Summary collapse

Instance Method Details

#fetch_database_name(adapter) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/controllers/concerns/dbviewer/database_operations/database_information.rb', line 34

def fetch_database_name(adapter)
  case adapter
  when /mysql/
    query = "SELECT DATABASE() as db_name"
    result = database_manager.execute_query(query).first
    result ? result["db_name"] : "Database"
  when /postgres/
    query = "SELECT current_database() as db_name"
    result = database_manager.execute_query(query).first
    result ? result["db_name"] : "Database"
  when /sqlite/
    # For SQLite, extract the database name from the connection_config
    database_path = database_manager.connection.pool.spec.config[:database] || ""
    File.basename(database_path, ".*") || "SQLite Database"
  else
    "Database" # Default fallback
  end
end

#get_adapter_nameObject

Get the name of the current database adapter



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/concerns/dbviewer/database_operations/database_information.rb', line 20

def get_adapter_name
  adapter_name = database_manager.connection.adapter_name.downcase
  adapter_mappings = {
    /mysql/i => "MySQL",
    /postgres/i => "PostgreSQL",
    /sqlite/i => "SQLite",
    /oracle/i => "Oracle",
    /sqlserver|mssql/i => "SQL Server"
  }
  adapter_mappings.find { |pattern, _| adapter_name =~ pattern }&.last || adapter_name.titleize
rescue
  "Unknown"
end

#get_database_nameObject

Get the name of the current database



11
12
13
14
15
16
17
# File 'app/controllers/concerns/dbviewer/database_operations/database_information.rb', line 11

def get_database_name
  current_conn_config = Dbviewer.configuration.database_connections[current_connection_key]
  return current_conn_config[:name] if current_conn_config && current_conn_config[:name].present?

  adapter = database_manager.connection.adapter_name.downcase
  fetch_database_name(adapter)
end