I'm having problems getting testing to work with Postgresql and Rails 3.

Both development and production databases I can get to work fine, however the test database throws the following errors when I run rake or db:test:prepare, etc.

PGError: ERROR: source database "template1" is being accessed by other users

Update

Googling around, it seems that one should use template0 instead of template1 when using createdb to create a new database in Postgres. In typical “So I’ll remove the cause. But not the symptom” fashion, I found vendor/rails/railities/lib/task/databases.rake and changed line 109 to read:

createdb #{enc_option} \
-U "#{abcs["test"]["username"]}" \
-T template0 #{abcs["test"]["database"]}

But I don't really wanna do that, as I'm using Rails as a GEM, any one know of another work around or fix?

database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: test1234_development
  pool: 5
  username: holden
  password: postgres

test:
  adapter: postgresql
  encoding: unicode
  database: test1234_test
  pool: 5
  username: holden
  password: postgres

Full error:

NOTICE: database "test1234_test" does not exist, skipping
PGError: ERROR: source database "template1" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
: CREATE DATABASE "test1234_test" ENCODING = 'unicode'

Edit
Report