Грабли прерваны! ОШИБКА: должен быть владельцем базы данных

Я работаю над Майклом Хартлом отлично tutorial, но при попытке подготовить тестовую базу данных с помощью команды: bundle exec rake db: test: подготовить Я получаю это сообщение об ошибке:

ОШИБКА: должен быть владельцем базы данных sample_app_test...

который я никогда не получал при использовании базы данных разработки, потому что я создал следующую роль базы данных для моего приложения Rails:

CREATE ROLE demo_app С СОЗДАННЫМ ВХОДОМ

(используется Postgresql)

Кто-нибудь понимает, почему это не работает в тестовой среде? ТИА...

Ответ 1

Вы обеспечили владение тестовой БД? попробуйте запустить команду \l на клиенте консоли Postgres и проверить права собственности. вы также можете попробовать следующий запрос:

ALTER DATABASE sample_app_test OWNER TO demo_app;

Ответ 2

Первое сообщение, записывающее это для потомков. У меня была такая же проблема, но я смог ее исправить. Вам просто нужно убедиться, что вы были/вошли в систему как суперпользователь при создании своих баз данных (или той, которая бросает ошибку).

Я записывался в psql с помощью этого кода:

sudo sudo -u postgres psql 

И создал мои базы данных. Это плохо. Вы хотите войти в систему с этими учетными данными суперпользователя:

sudo su - postgres

И после того, как вы войдете в postgres:

psql 

Затем создайте свои базы данных. Вы можете убить свои старые базы данных командой

DROP DATABASE "database_to_drop";

Восстановите их, и вы должны быть хорошими!