我正在使用django db backup创建postgres数据库的备份。当我运行python manage.py dbbackup时,它会创建一个default.backup文件。
但是,当我运行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']

最佳答案

这是为了确保您使用的用户是数据库的所有者。现在看起来您正在使用dbrestore用户(从dev行)运行CommandError: Error running: [u'dropdb', u'--username=dev', u'--host=localhost', u'hera']命令。
可能有三种选择:
1/使用PSQL命令将数据库的所有者更改为dev,如下所示:

ALTER DATABASE hera OWNER TO dev;

2/更改dbrestore脚本在运行到数据库所有者时使用的--username=dev(除了dev,您可以在PSQL中使用\l,以列出数据库并查看数据库的所有者。
3/您可以提供dev超级用户和createdb功能,但不确定这在安全性方面是否理想。

09-30 17:02
查看更多