postgresql, ОШИБКА: отказано в разрешении для отношения django_migrations

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

Вот как я создаю базу данных для своего приложения:

sudo -u postgres psql  
CREATE DATABASE dapp;  
CREATE USER backupu WITH PASSWORD 'pass123';  
ALTER ROLE backupu SET client_encoding TO 'utf8';  
ALTER ROLE backupu SET default_transaction_isolation TO 'read committed';  
ALTER ROLE backupu SET timezone TO 'UTC';  
GRANT ALL PRIVILEGES ON DATABASE dapp TO backupu;  
\q  

И это мой сценарий резервного копирования, backup.sh с chmod 777:

export PGUSER='backupu'  
export PGPASSWORD='pass123'  
TODAY=`date +%Y-%m-%d`  
TIME_NOW=`date +%H:%M`  
ARCH_RESP=$TODAY-$TIME_NOW  
pg_dump dentalapp > /home/backupu/backup/backup_$ARCH_RESP.sql  
find /home/backupu/backup/ -name '*.sql' -mtime +2 -exec rm -f {} \;  
unset PGUSER  
unset PGPASSWORD  

Но когда я запускаю его, я получаю эту ошибку:

pg_dump: запрос [архиватора (db)] завершился неудачно: ОШИБКА: отказано в разрешении для отношения django_migrations pg_dump: запрос [архиватора (db)] был: ТАБЛИЦА БЛОКИРОВКИ public.django_migrations В РЕЖИМЕ ДОСТУПА ОБМЕНА

а также:

соединение с базой данных «dapp» не удалось: FATAL: не удалось выполнить аутентификацию однорангового узла для пользователя «backupu»

Я попытался добавить эту строку в свой pg_hba.conf

local   all     backupu     md5

Но ошибка сохраняется, возможно, некоторые разрешения отсутствуют или мне нужен дополнительный шаг при создании своей базы данных. Я уже проверял другой пост здесь, в stackoverflow, но тоже безуспешно. Можете ли вы мне помочь?

Я запускаю локальный сервер с ubuntu 14.04, nginx, gunicorn и postgresql 9.3


person Kevin Ramirez Zavalza    schedule 15.08.2016    source источник
comment
я не понимаю, почему вы устанавливаете уровень изоляции транзакции. Не следует ли сериализовать уровень изоляции транзакции для pg_dump (и разве это не по умолчанию)?   -  person e4c5    schedule 15.08.2016
comment
Возможный дубликат Отказано в разрешении для связи   -  person Tomasz Jakub Rup    schedule 15.08.2016


Ответы (1)


Что происходит, так это то, что вы используете пользователя, у которого нет прав доступа к таблице django_migrations.

Используйте того же пользователя базы данных, что и веб-приложение.

person Eddy del Valle    schedule 03.01.2019