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
- #fetch_database_name(adapter) ⇒ Object
-
#get_adapter_name ⇒ Object
Get the name of the current database adapter.
-
#get_database_name ⇒ Object
Get the name of the current database.
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_name ⇒ Object
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_name ⇒ Object
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 |