postgresql,ERROR:关系django_migrations

时间:2016-08-15 13:45:40

标签: django postgresql pg-dump

我在尝试制作脚本以自动备份我的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 with 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:[archiver(db)]查询失败:ERROR:权限被拒绝   关系django_migrations pg_dump:[archiver(db)]查询是:LOCK   表访问共享模式中的public.django_migrations

  

与数据库“dapp”的连接失败:致命:对等“身份验证   用户“backupu”

失败

我尝试将此行添加到我的pg_hba.conf

local   all     backupu     md5

但是错误仍然存​​在,也许某些权限丢失或者在创建数据库时需要更多步骤。我已经在stackoverflow中检查了一些其他帖子,但也没有成功,你能帮助我吗?

我正在使用ubuntu 14.04,nginx,gunicorn和postgresql 9.3运行本地服务器

1 个答案:

答案 0 :(得分:0)

发生的情况是,您使用的用户对django_migrations表没有任何权限。

使用与webapp相同的数据库用户。