dbbackup指定要使用的pg_dump

时间:2017-09-28 13:02:45

标签: python postgresql centos pg-dump django-1.11

致电

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的非root用户安装(版本9.6.5)作为django应用程序的后端。 (使用this教程进行安装。)

机器中还有一个postgreSQL安装(版本8.4.20)。

在我切换到非root安装之前,一切都运行得很完美。 我的猜测是pg_dump中调用的dbbackup仍然是根安装中的villes

如何指定使用哪个pg_dump?

1 个答案:

答案 0 :(得分:1)

如果您已经对用户nonrootuser进行了非root用户安装,那么您应该在{{1}下找到psql以及pg_dump进行此安装}。这是您要使用的/home/nonrootuser/postgres/bin/

Dbbackup允许您指定用于创建备份的连接器。 特别是它允许您指定转储命令(DUMP_CMD)。 要指定连接器,请将以下块添加到settings.py:

pg_dump

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' ) } } 替换为您的特定值。

希望有所帮助!