如何在django应用的google app引擎中进行自动化的postgres db备份?

问题描述 投票:0回答:1

我有一个使用postgres SQL在标准Google App Engine中运行的Django应用。我想每天运行cron以将数据库快照保存在其中一个存储桶中。

使用django-extensions和django-dbbackup,我创建了一个cron作业,该作业在本地工作。但是在GAE上,我收到此错误:

dbbackup.db.exceptions.CommandConnectorError: Error running: pg_dump db-duiteng-fdspranav-dev --host=35.200.172.96 --port=5432 --username=user-duiteng-fdspranav-dev --no-password --clean

我如何在GAE中设置psql密码或使用.pgpass文件?] >>

代码:

# cron.yaml
cron:
- description: "DB Backup CRON job"
  url: /core/cron-jobs  # the path to your view
  schedule: every 2 minutes  # the frequency for running the job
  retry_parameters:
    min_backoff_seconds: 120
    max_doublings: 5

# views.py
def my_background_job(request):
    call_command('runjobs', 'daily')
    return HttpResponse('Cron run success', status="200")

# myapp>jobs>daily>db_backup.py (example documented in django_extensions)

from django_extensions.management.jobs import DailyJob

class Job(DailyJob):
    help = "Django Daily DB Backups"

    def execute(self):
        from django.core import management
        management.call_command("dbbackup")

# settings.py
INSTALLED_APPS = [
    ...
    'django_extensions',
    'dbbackup',  # django-dbbackup
]

https://cloud.google.com/sql/docs/postgres/backup-recovery/backing-up中的Postgres备份文档不明确。 Google所说的“自动备份”对我没有多大帮助,因为我没有在任何地方将* .psql文件中的数据库转储。他们确实提到“当前,您只能使用API​​设置备份的自定义位置”。但仅适用于该地理位置。

我该如何为在Google App Engine上运行的Django应用程序的Postgres DB(作为Google存储桶中的* .psql转储文件)进行每日备份?[]

我有一个使用postgres SQL在标准Google App Engine中运行的Django应用。我想每天运行cron来将数据库快照保存在其中一个存储桶中。使用django-extensions和django-dbbackup,我...

查看以下链接。https://cloud.google.com/sql/docs/postgres/import-export/exporting

它描述了如何使用gcloud命令或rest API以SQL转储或CSV格式导出数据库并将其保存到Cloud Storage。

内部,它使用pg_dump,这与django-dbbackup扩展也使用的相同。

django postgresql cron backup
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.