Title: [880] trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb: Fix db: create for JDBC
Revision
880
Author
olabini
Date
2008-01-16 09:16:31 -0500 (Wed, 16 Jan 2008)

Log Message

Fix db:create for JDBC

Modified Paths


Diff

Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb (879 => 880)


--- trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb	2008-01-13 06:12:23 UTC (rev 879)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/rake_tasks.rb	2008-01-16 14:16:31 UTC (rev 880)
@@ -11,6 +11,36 @@
   end
 
   namespace :db do
+    redefine_task :create => :environment do
+      create_database(ActiveRecord::Base.configurations[RAILS_ENV])
+    end
+
+    def create_database(config)
+      begin
+        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
+          if (config['driver'] || config['adapter']) =~ /postgr/
+            `createdb "#{config['database']}" -E utf8`
+          else 
+            warn "couldn't create database #{config['database']}"
+          end
+        end
+      end
+    end
+    
     redefine_task :drop => :environment do
       begin
         config = ActiveRecord::Base.configurations[environment_name]
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to