Title: [955] trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc.rake: Rake db: create and db:drop tasks are specific to Rails 2; so only
Revision
955
Author
nicksieger
Date
2008-03-24 16:20:43 -0400 (Mon, 24 Mar 2008)

Log Message

Rake db:create and db:drop tasks are specific to Rails 2; so only
define them if necessary

Modified Paths

Diff

Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc.rake (954 => 955)


--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc.rake	2008-03-20 12:35:08 UTC (rev 954)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc.rake	2008-03-24 20:20:43 UTC (rev 955)
@@ -10,44 +10,46 @@
 end
 
 namespace :db do
-  redefine_task :create => :environment do
-    create_database(ActiveRecord::Base.configurations[RAILS_ENV])
-  end
+  if respond_to?(:create_database)
+    redefine_task :create => :environment do
+      create_database(ActiveRecord::Base.configurations[RAILS_ENV])
+    end
 
-  class << self; alias_method :previous_create_database, :create_database; end
-  def create_database(config)
-    begin
-      ActiveRecord::Base.establish_connection(config)
-      ActiveRecord::Base.connection
-    rescue
+    class << self; alias_method :previous_create_database, :create_database; end
+    def create_database(config)
       begin
-        url = ""
-        if url
-          if url =~ /^(.*\/)/
-            url = ""
+        ActiveRecord::Base.establish_connection(config)
+        ActiveRecord::Base.connection
+      rescue
+        begin
+          url = ""
+          if url
+            if url =~ /^(.*\/)/
+              url = ""
+            end
           end
+
+          ActiveRecord::Base.establish_connection(config.merge({'database' => nil, 'url' => url}))
+          ActiveRecord::Base.connection.create_database(config['database'])
+          ActiveRecord::Base.establish_connection(config)
+        rescue
+          previous_create_database(config)
         end
+      end
+    end
 
-        ActiveRecord::Base.establish_connection(config.merge({'database' => nil, 'url' => url}))
-        ActiveRecord::Base.connection.create_database(config['database'])
+    redefine_task :drop => :environment do
+      config = ActiveRecord::Base.configurations[RAILS_ENV]
+      begin
         ActiveRecord::Base.establish_connection(config)
+        db = ActiveRecord::Base.connection.database_name
+        ActiveRecord::Base.connection.drop_database(db)
       rescue
-        previous_create_database(config)
+        drop_database(config)
       end
     end
   end
 
-  redefine_task :drop => :environment do
-    config = ActiveRecord::Base.configurations[RAILS_ENV]
-    begin
-      ActiveRecord::Base.establish_connection(config)
-      db = ActiveRecord::Base.connection.database_name
-      ActiveRecord::Base.connection.drop_database(db)
-    rescue
-      drop_database(config)
-    end
-  end
-
   namespace :structure do
     redefine_task :dump => :environment do
       abcs = ActiveRecord::Base.configurations
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to