我有麻烦试图使脚本自动备份我的django应用程序的db。
这是我如何为我的应用程序创建我的数据库:
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: [archiver (db)] query failed: ERROR: permission denied forrelation django_migrations pg_dump: [archiver (db)] query was: LOCK表公开。django_migrations IN ACCESS SHARE MODE
:
连接数据库"dapp"失败:FATAL: Peer"身份验证用户"backupu"失败
我尝试将这行添加到我的pg_hba.conf
local all backupu md5
但是错误持续存在,可能是一些权限丢失或需要更多的步骤,当我创建我的数据库。我已经在stackoverflow检查了一些其他的帖子,但也没有成功,你能帮助我吗?
我正在运行一个本地服务器,ubuntu 14.04, nginx, gunicorn和postgresql 9.3
实际情况是,您使用的用户对django_migrations
表没有权限。
使用与web应用相同的数据库用户