У меня есть два пользователя в postgresql, один из которых называется migration
и используется, когда Rails запускает миграции на рабочем сервере. Этот пользователь владеет производственной базой данных. У меня также есть пользователь production
, который должен иметь только следующие привилегии: SELECT, INSERT, UPDATE, DELETE
в производственной базе данных.
Проблема в том, что каждый раз, когда создается новая таблица, мне приходится вручную запускать ее в psql:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO production;
-- next line is needed for each new table which has an auto incrementing field, in this case - table `users`
GRANT USAGE, SELECT ON SEQUENCE users_id_seq TO production;
потому что разрешения для пользователя production
на вновь созданные таблицы не устанавливаются автоматически. Как лучше всего сделать это автоматически при выполнении миграции? Есть ли скрипт для Rails/Capistrano?