打电话时
from django.core.management import call_command
call_command('dbbackup', compress=True, interactive=False)
我得到:
CommandConnectorError: Error running: pg_dump xxx --host=localhost --port=xxx --username=xxx --no-password --clean
pg_dump: server version: 9.6.5; pg_dump version: 8.4.20
pg_dump: aborting because of server version mismatch
我正在使用PostgreSQL (版本9.6.5
)的非根安装作为django应用程序的后端。(安装时使用了这教程。)
机器中还有一个postgreSQL安装(8.4.20
版本)。
在我切换到非根安装之前,一切都完美无缺。我的猜测是,在pg_dump
中调用的dbbackup
仍然是根安装的。
如何指定要使用哪个pg_dump?
发布于 2017-09-28 13:05:04
如果您已经完成了postgreSQL的非根安装(例如使用用户nonrootuser
),那么您应该在/home/nonrootuser/postgres/bin/
下找到该安装的psql
和pg_dump
。这是您想要使用的pg_dump
。
Dbbackup允许您指定用于创建备份的连接器。特别是,它允许您指定转储命令(DUMP_CMD
)。若要指定连接器,请将以下块添加到settings.py中:
import os # if not yet imported
DBBACKUP_CONNECTORS = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'xxx',
'USER': 'xxx',
'PASSWORD': 'xxx',
'HOST': 'xxx',
'PORT': 'xxx',
'DUMP_CMD': os.path.join(
os.environ["HOME"],
'nonrootuser',
'bin',
'pg_dump'
)
}
}
用特定的值替换xxx
。
希望这能帮上忙!
https://stackoverflow.com/questions/46469887
复制相似问题