2015-07-23 2 views
4

У меня есть локальный проект с рельсами и postgres. Я бросил его на AMIS AMASON Linux. Я запускал тестовые проекты с рельсами и postgres на сервере. Однако, когда я загрузил свой локальный проект, и попробуйте запуститьActiveRecord :: StatementInvalid: PG :: InsufficientPrivilege: ОШИБКА: разрешение отклонено для отношения schema_migrations

rake db:migrate 

Я получаю следующее сообщение об ошибке:

ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: permission denied for relation schema_migrations 

Я видел несколько подобных вопросов, но ни один из них не поможет. У меня есть правильная настройка ролей и связь.

+0

Создана ли роль для postgresql? – Pavan

+0

У меня есть эта роль, смешно, что она работала для команды create. Тройка проверила информацию. – Kevin

+0

Кроме того, чтобы проверить, db: create работает отлично. но мигрировать нет. – Kevin

ответ

3

Я не уверен, что вы работаете rake db:migrate с RAILS_ENV как производство или разработка. Какой бы он ни был (разработка по умолчанию), в вашем config/database.yml будет сказано, что пользователь, пароль и база данных запущены. Этот пользователь должен иметь ALL привилегии на столе public.schema_migrations. Если это так, и оно все еще не работает, убедитесь, что у пользователя есть ВСЕ привилегии в схеме public.

Подробнее о манипулировании привилегиями базы данных postgres here. Postgres имеет отличную документацию.

Еще одна вещь: если вы создаете эту базу данных локально и пытаетесь создать исходную базу данных вместо фактического выполнения миграции, используйте rake db:schema:load вместо rake db:migrate. Никогда запустите это на производстве, так как он удалит ваши данные!

Смежные вопросы