У меня проблемы с тестированием для работы с Postgresql и Rails 3.
Обе базы данных разработки и производства я могу нормально работать, однако в тестовой базе данных возникают следующие ошибки при запуске rake
или db:test:prepare
и т.д.
PGError: ERROR: исходная база данных "template1" обращается к другим пользователям
Update
Похоже, что при использовании createb для создания новой базы данных в Postgres следует использовать template0
вместо template1
. В типичном "So Ill удалить причину, но не в симптом", я нашел vendor/rails/railities/lib/task/databases.rake
и изменил строку 109 следующим образом:
createdb #{enc_option} \
-U "#{abcs["test"]["username"]}" \
-T template0 #{abcs["test"]["database"]}
Но я действительно не хочу этого делать, поскольку я использую Rails как GEM, кто-нибудь знает о другой работе или исправлении?
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
Полная ошибка:
ИЗВЕЩЕНИЕ: база данных "test1234_test" не существует, пропуская PGError: ОШИБКА: исходная база данных "template1" доступна другим пользователям
ПОДРОБНОЕ ОПИСАНИЕ: В базе данных есть еще 1 сеанс (ы).
: CREATE DATABASE "test1234_test" ENCODING = 'unicode'