簡體   English   中英

dbbackup 指定使用哪個 pg_dump

[英]dbbackup specify which pg_dump to use

打電話時

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 )的非 root 安裝作為 django 應用程序的后端。 (使用教程進行安裝。)

機器中還有一個 postgreSQL 安裝(版本8.4.20 )。

在我切換到非 root 安裝之前,一切都完美無缺。 我的猜測是dbbackup調用的pg_dump仍然是 root 安裝中的那個。

如何指定使用哪個 pg_dump ?

如果您對 postgreSQL 進行了非 root 安裝,比如使用用戶nonrootuser ,那么您應該在/home/nonrootuser/postgres/bin/下找到此安裝的psqlpg_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替換為您的特定值。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM