Class: Rails::DBConsole

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/commands/dbconsole/dbconsole_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ DBConsole

Returns a new instance of DBConsole.



12
13
14
15
# File 'lib/rails/commands/dbconsole/dbconsole_command.rb', line 12

def initialize(options = {})
  @options = options
  @options[:environment] ||= Rails::Command.environment
end

Class Method Details

.start(*args) ⇒ Object



8
9
10
# File 'lib/rails/commands/dbconsole/dbconsole_command.rb', line 8

def self.start(*args)
  new(*args).start
end

Instance Method Details

#databaseObject



44
45
46
# File 'lib/rails/commands/dbconsole/dbconsole_command.rb', line 44

def database
  @options[:database]
end

#db_configObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File '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

#environmentObject



48
49
50
# File 'lib/rails/commands/dbconsole/dbconsole_command.rb', line 48

def environment
  @options[:environment]
end

#startObject



17
18
19
20
21
# File '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