我有一个Django应用程序运行在标准的中,使用postgres。
我使用(postgres)和。如何每天凌晨2点备份数据库,并将.sql文件保存在Google中?
我想每天运行一个cron来将db快照保存在一个存储桶中。
使用django扩展和django-dbbackup,我创建了一个cron作业,它在本地工作。但是在GAE上,我得到了这个错误:
dbbackup.db.exceptions.CommandConnectorError: Error running: pg_dump db-development --host=67.74.73.21 --port=5432 --username=db-development-user --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备份文档是模糊的。谷歌所说的“自动备份”对我没有多大帮助,因为我在任何地方都没有在*.psql文件中获得DB转储。他们确实提到“目前,您只能使用API来设置备份的自定义位置。”但它只适用于地理地址。
对于运行在Google引擎上的Django应用程序,如何对postgres (作为谷歌存储桶中的转储文件)进行自动备份?
发布于 2020-01-14 09:46:39
查看下面的链接。https://cloud.google.com/sql/docs/postgres/import-export/exporting
它描述了如何使用gcloud命令或rest以SQL转储或CSV格式导出数据库,并将其保存到云存储中。
在内部,它使用pg_dump,这与django-dbbackup扩展也使用的内容相同。
https://stackoverflow.com/questions/59723134
复制相似问题