aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/tasks
diff options
context:
space:
mode:
authorJames Miller <james@jkmillertech.com>2008-09-10 11:27:38 -0700
committerJames Miller <james@jkmillertech.com>2008-09-10 11:27:38 -0700
commit383467fb5da3d0d17bb3e41b6b4c0ab69b2ef082 (patch)
tree2e81d95ccbb48189f8d456f69c32389bbb122c71 /railties/lib/tasks
parent6704e90c900555196080165c242d6999d1fcfaba (diff)
parent6d1be5f1eb83fb693ffd00e1967c1b3ca1c9ece3 (diff)
downloadrails-383467fb5da3d0d17bb3e41b6b4c0ab69b2ef082.tar.gz
rails-383467fb5da3d0d17bb3e41b6b4c0ab69b2ef082.tar.bz2
rails-383467fb5da3d0d17bb3e41b6b4c0ab69b2ef082.zip
Merge branch 'master' of git@github.com:lifo/docrails
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"