Skip to Content Skip to Search

class Rails::DBConsole

Public class methods

Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 12
def initialize(options = {})
  @options = options
  @options[:environment] ||= Rails::Command.environment
end
Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 8
def self.start(*args)
  new(*args).start
end

Public instance methods

Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 44
def database
  @options[:database]
end
Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 23
def db_config
  @db_config ||= begin
    # If the user provided a database, use that. Otherwise find
    # the first config in the database.yml
    config = if database
      @db_config = configurations.configs_for(env_name: environment, name: database, include_hidden: true)
    else
      @db_config = configurations.find_db_config(environment)
    end

    unless config
      missing_db = database ? "'#{database}' database is not" : "No databases are"
      raise ActiveRecord::AdapterNotSpecified,
        "#{missing_db} configured for '#{environment}'. Available configuration: #{configurations.inspect}"
    end

    config.validate!
    config
  end
end
Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 48
def environment
  @options[:environment]
end
Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 17
def start
  adapter_class.dbconsole(db_config, @options)
rescue NotImplementedError, ActiveRecord::AdapterNotFound, LoadError => error
  abort error.message
end

Private instance methods

Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 59
def configurations # :doc:
  require APP_PATH
  ActiveRecord::Base.configurations = Rails.application.config.database_configuration
  ActiveRecord::Base.configurations
end
Source code GitHub
# File railties/lib/rails/commands/dbconsole/dbconsole_command.rb, line 65
      def find_cmd_and_exec(commands, *args) # :doc:
        Rails.deprecator.warn(<<~MSG.squish)
          Rails::DBConsole#find_cmd_and_exec is deprecated and will be removed in Rails 7.2.
          Please use find_cmd_and_exec on the connection adapter class instead.
        MSG
        ActiveRecord::Base.lease_connection.find_cmd_and_exec(commands, *args)
      end

Definition files