2015-09-10 73 views
1

我正在使用django-dbbackup創建我的備份postgres db。當我運行python manage.py dbbackup時,它會創建一個default.backup文件。Django db備份postgres錯誤

但是,當我運行python manage.py dbrestore時出現以下錯誤。

Restoring backup for database: hera 
Finding latest backup 
Restoring: /home/dev/Documents/Program Codes/Python/Django/Hera/default.backup 
Restore tempfile created: 670.5 KB 
Are you sure you want to continue? [Y/n]y 
Running: dropdb --username=****** --host=localhost hera 
dropdb: database removal failed: ERROR: must be owner of database hera 

CommandError: Error running: [u'dropdb', u'--username=dev', u'--host=localhost', u'hera'] 
+0

似乎有一個明確的信息:'dropdb:數據庫刪除失敗:錯誤:必須是數據庫hera'的擁有者 –

+0

但是,如何以擁有者的身份運行它? –

回答

0

這是關於確保您使用的用戶是數據庫的所有者。現在看起來您正在使用dev用戶(來自行CommandError: Error running: [u'dropdb', u'--username=dev', u'--host=localhost', u'hera'])運行dbrestore命令。

有可能三個選項:

1 /使用PSQL命令類似數據庫的所有者更改爲dev

ALTER DATABASE hera OWNER TO dev; 

2 /改變你的dbrestore腳本使用--username=dev當它運行給數據庫的所有者(dev以外的東西,您可以在PSQL中使用\l列出您的數據庫並查看哪個用戶擁有該數據庫。應該給予dev超級用戶和createdb能力,儘管不確定這在安全性方面是理想的。