diff options
author | Pat Allan <pat@freelancing-gods.com> | 2012-06-17 13:43:24 +0200 |
---|---|---|
committer | Pat Allan <pat@freelancing-gods.com> | 2012-06-17 13:43:24 +0200 |
commit | d29727235ae967e1ae4880ddfa5fd37d726f779d (patch) | |
tree | 20fa641915379f67466fa8913f3326302e539491 /activerecord/lib/active_record/tasks/database_tasks.rb | |
parent | 8aaeaf6f90f5ff5e32a9d5ce56815ab0acbcc2d5 (diff) | |
download | rails-d29727235ae967e1ae4880ddfa5fd37d726f779d.tar.gz rails-d29727235ae967e1ae4880ddfa5fd37d726f779d.tar.bz2 rails-d29727235ae967e1ae4880ddfa5fd37d726f779d.zip |
db:create for MySQL now much cleaner.
Diffstat (limited to 'activerecord/lib/active_record/tasks/database_tasks.rb')
-rw-r--r-- | activerecord/lib/active_record/tasks/database_tasks.rb | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb index a72ec0175b..d0d3ea12dd 100644 --- a/activerecord/lib/active_record/tasks/database_tasks.rb +++ b/activerecord/lib/active_record/tasks/database_tasks.rb @@ -1,14 +1,19 @@ class ActiveRecord::Tasks::DatabaseTasks - def self.create(configuration) - if File.exist?(configuration['database']) - $stderr.puts "#{configuration['database']} already exists" - return - end + TASKS_PATTERNS = { + /mysql/ => ActiveRecord::Tasks::MySQLDatabaseTasks, + # /postgresql/ => ActiveRecord::Tasks::PostgreSQLTasker, + /sqlite/ => ActiveRecord::Tasks::SQLiteDatabaseTasks + } - ActiveRecord::Base.establish_connection(configuration) - ActiveRecord::Base.connection + def self.create(configuration) + class_for_adapter(configuration['adapter']).new(configuration).create rescue Exception => e $stderr.puts e, *(e.backtrace) $stderr.puts "Couldn't create database for #{configuration.inspect}" end + + def self.class_for_adapter(adapter) + key = TASKS_PATTERNS.keys.detect { |key| adapter[key] } + TASKS_PATTERNS[key] + end end |