我在尝试制作脚本以自动备份我的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运行本地服务器
答案 0 :(得分:0)
发生的情况是,您使用的用户对django_migrations
表没有任何权限。
使用与webapp相同的数据库用户。