aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/commands/dbconsole.rb10
-rw-r--r--railties/test/commands/dbconsole_test.rb8
2 files changed, 13 insertions, 5 deletions
diff --git a/railties/lib/rails/commands/dbconsole.rb b/railties/lib/rails/commands/dbconsole.rb
index 90359d1c08..d614328e52 100644
--- a/railties/lib/rails/commands/dbconsole.rb
+++ b/railties/lib/rails/commands/dbconsole.rb
@@ -6,7 +6,7 @@ require 'rbconfig'
module Rails
class DBConsole
attr_reader :config, :arguments
-
+
def self.start
new.start
end
@@ -59,7 +59,7 @@ module Rails
args << "-#{options['mode']}" if options['mode']
args << "-header" if options['header']
- args << File.expand_path(config['database'], Rails.root)
+ args << File.expand_path(config['database'], Rails.respond_to?(:root) ? Rails.root : nil)
find_cmd_and_exec('sqlite3', *args)
@@ -108,7 +108,7 @@ module Rails
def parse_arguments(arguments)
options = {}
-
+
OptionParser.new do |opt|
opt.banner = "Usage: rails dbconsole [environment] [options]"
opt.on("-p", "--include-password", "Automatically provide the password from database.yml") do |v|
@@ -123,7 +123,7 @@ module Rails
opt.on("--header") do |h|
options['header'] = h
end
-
+
opt.on("-h", "--help", "Show this help message.") do
puts opt
exit
@@ -142,7 +142,7 @@ module Rails
env = arguments.first
options[:environment] = %w(production development test).detect {|e| e =~ /^#{env}/} || env
end
-
+
options
end
diff --git a/railties/test/commands/dbconsole_test.rb b/railties/test/commands/dbconsole_test.rb
index d45bdaabf5..6316584825 100644
--- a/railties/test/commands/dbconsole_test.rb
+++ b/railties/test/commands/dbconsole_test.rb
@@ -116,6 +116,14 @@ class Rails::DBConsoleTest < ActiveSupport::TestCase
assert !aborted
end
+ def test_sqlite3_db_without_defined_rails_root
+ Rails.stubs(:respond_to?)
+ Rails.expects(:respond_to?).with(:root).once.returns(false)
+ dbconsole.expects(:find_cmd_and_exec).with('sqlite3', Rails.root.join('../config/db.sqlite3').to_s)
+ start(adapter: 'sqlite3', database: 'config/db.sqlite3')
+ assert !aborted
+ end
+
def test_oracle
dbconsole.expects(:find_cmd_and_exec).with('sqlplus', 'user@db')
start(adapter: 'oracle', database: 'db', username: 'user', password: 'secret')