Django db 备份 postgres 错误

标签 django postgresql django-models django-orm

我正在使用 django-dbbackup 创建我的 postgres db 的备份。当我运行 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']

最佳答案

这是关于确保您使用的用户是数据库的所有者。现在看起来您正在使用 dev 用户运行 dbrestore 命令(来自行 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 以外的其他内容,您可以使用 \l 在 PSQL 中列出您的数据库并查看哪个用户拥有该数据库。

3/您可以赋予 dev super 用户和 createdb 能力,但不确定这在安全性方面是否理想。

关于Django db 备份 postgres 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507620/

相关文章:

postgresql - 如何使用 Ecto/Phoenix 从数据库中选择最新条目

Django 注释不适用于 order_by

java - 集成测试从 gradle build 运行而不是从 intellij 运行?

MySQL -> Postgres

Java ORM 的功能类似于 Django 的默认 ORM?

django - 我想从数据库中查询 3 个随机产品,每次只有 3 个

python - 如何使用 celery 任务创建单个文件可执行文件

python - VirtualEnv导入错误: No module named MySQLdb

javascript - django 变量到 javascript

django - 在Python中将MySQLdb返回值从元组转换为字符串