aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/tasks
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2008-09-10 19:06:59 +0100
committerPratik Naik <pratiknaik@gmail.com>2008-09-10 19:06:59 +0100
commit6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3 (patch)
tree059a4da48e9d4ec113c7df2bf915e83244ea3820 /railties/lib/tasks
parentd0a2b849f469469a1b189b4d077a95f35e31d65a (diff)
parentc19c0e7872e65094b14bc08e24d19eebd9d1562a (diff)
downloadrails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.tar.gz
rails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.tar.bz2
rails-6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3.zip
Merge commit 'mainstream/master'
Diffstat (limited to 'railties/lib/tasks')
-rw-r--r--railties/lib/tasks/databases.rake24
1 files changed, 18 insertions, 6 deletions
diff --git a/railties/lib/tasks/databases.rake b/railties/lib/tasks/databases.rake
index 21c81b3fb5..cc079b1d93 100644
--- a/railties/lib/tasks/databases.rake
+++ b/railties/lib/tasks/databases.rake
@@ -28,8 +28,24 @@ namespace :db do
def create_database(config)
begin
- ActiveRecord::Base.establish_connection(config)
- ActiveRecord::Base.connection
+ if config['adapter'] =~ /sqlite/
+ if File.exist?(config['database'])
+ $stderr.puts "#{config['database']} already exists"
+ else
+ begin
+ # Create the SQLite database
+ ActiveRecord::Base.establish_connection(config)
+ ActiveRecord::Base.connection
+ rescue
+ $stderr.puts $!, *($!.backtrace)
+ $stderr.puts "Couldn't create database for #{config.inspect}"
+ end
+ end
+ return # Skip the else clause of begin/rescue
+ else
+ ActiveRecord::Base.establish_connection(config)
+ ActiveRecord::Base.connection
+ end
rescue
case config['adapter']
when 'mysql'
@@ -52,10 +68,6 @@ namespace :db do
$stderr.puts $!, *($!.backtrace)
$stderr.puts "Couldn't create database for #{config.inspect}"
end
- when 'sqlite'
- `sqlite "#{config['database']}"`
- when 'sqlite3'
- `sqlite3 "#{config['database']}"`
end
else
$stderr.puts "#{config['database']} already exists"