Activerecord-jdbc-adapter: Rake 'drop' task fails with PostgreSQL
-----------------------------------------------------------------

                 Key: JRUBY-5081
                 URL: http://jira.codehaus.org/browse/JRUBY-5081
             Project: JRuby
          Issue Type: Bug
          Components: JRuby-extras
            Reporter: Scott Lowe
            Priority: Minor


This issue affects the JDBC rake tasks that call the :drop task, i.e. db:reset, 
db:drop
The root cause is that PostgreSQL does not allow a database to be dropped 
whilst there
is a connection to it.

http://www.postgresql.org/docs/8.4/interactive/sql-dropdatabase.html

The issue manifests itself around line 35 in the jdbc.rake file:

http://github.com/nicksieger/activerecord-jdbc-adapter/blob/master/lib/arjdbc/jdbc/jdbc.rake

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.merge('adapter' => config['adapter'].sub(/^jdbc/, '')))
  end
end

The issue can be fixed by establishing a connection to the 'postgres' database 
in
order to drop the development/test/other database. This appears to be the 
approach taken
in the db:test:purge task where "config['database']" is set to "postgres".


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to