通过Google服务帐户将django postgres数据库、本地文件夹和S3文件夹备份到Google驱动器文件夹中。
django-gdrive-backup的Python项目详细描述
django gdrive备份
通过Google服务帐户将django postgres数据库、本地文件夹和S3文件夹备份到Google驱动器文件夹中。在
创建服务帐户
需要启用Google Drive API的Google服务帐户
https://console.cloud.google.com/apis/credentials/serviceaccountkey
Store服务帐户密钥
默认情况下,encrypted credentials用于存储密钥。在django projects BASE_DIR下创建一个名为credentials的目录,并保存json密钥。在
在设置.py在
CREDENTIAL_FOLDER = os.path.join(BASE_DIR, 'credentials')
CREDENTIAL_FILES = {
'drive': 'service-account.json',
}
创建Google Drive文件夹并与服务帐户共享
使用googledrive帐户创建一个文件夹并与服务帐户的电子邮件地址共享。在
配置数据库备份
在设置.py在
^{pr2}$管理命令
python manage.py backup_website
python manage.py restore_db
管理页
在网址.py在
urlpatterns = [
path('backup/', include('gdrive_backup.urls')),
....
Configure S3文件夹备份
在设置.py在
AWS_ACCESS_KEY_ID = id
AWS_SECRET_ACCESS_KEY = key
AWS_PRIVATE_STORAGE_BUCKET_NAME = bucket
S3_BACKUP_DIRS = [('S3-source-folder1', 'google-drive-folder1'),
('S3-source-folder2', 'google-drive-folder2')
]
配置旧数据库备份的清理
在设置.py在
BACKUP_DB_RETENTION = [{'hours': 1, 'number': 4},
{'hours': 2, 'number': 10},
{'days': 1, 'number': 10},
{'months': 1, 'number': 36},
]
Schedule backup with cellery beat
CELERY_BEAT_SCHEDULE = {
'backup': {
'task': 'gdrive_backup.tasks.backup',
'schedule': crontab(hour='8-19', minute=10, day_of_week='mon-fri')
}
}
- 项目
标签: