Backs up django postgres databases, local folders and S3 folders to a Google Drive folder through a google service account.
Project description
django-gdrive-backup
Backs up django postgres databases, local folders and S3 folders to a Google Drive folder through a google service account.
Create service account
Requires a Google service account with the Google Drive API enabled
https://console.cloud.google.com/apis/credentials/serviceaccountkey
Store service account key
By default encrypted-credentials is used to store the key. Create a directory off the django projects BASE_DIR called credentials and save the json key.
settings.py
CREDENTIAL_FOLDER = os.path.join(BASE_DIR, 'credentials')
CREDENTIAL_FILES = {
'drive': 'service-account.json',
}
Create Google Drive folder and share with service account
With a Google Drive account create a folder and share with the email address of the service account.
Configure database backup
settings.py
BACKUP_GDRIVE_DIR = 'django_backup'
BACKUP_GDRIVE_DB = BACKUP_GDRIVE_DIR + '/db'
Management commands
python manage.py backup_website
python manage.py restore_db
Management page
urls.py
urlpatterns = [
path('backup/', include('gdrive_backup.urls')),
....
Configure S3 folder backups
settings.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')
]
Configure cleaning of old datatabase backups
settings.py
BACKUP_DB_RETENTION = [{'hours': 1, 'number': 4},
{'hours': 2, 'number': 10},
{'days': 1, 'number': 10},
{'months': 1, 'number': 36},
]
Schedule backup with celery beat
CELERY_BEAT_SCHEDULE = {
'backup': {
'task': 'gdrive_backup.tasks.backup',
'schedule': crontab(hour='8-19', minute=10, day_of_week='mon-fri')
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-gdrive-backup-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 841dc7b39198de284b7807ecebf04efd5ede15e639cf9f7caa966214467732e9 |
|
MD5 | 2b18c56d7f4224d012ce00bf74a6aaf7 |
|
BLAKE2b-256 | 1634f916bef95c40ed1125b5f1ee9b2c6b9f17271c50276ad1ff341203444378 |
Hashes for django_gdrive_backup-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96b468c3f8b6aa6685da4fb9f74172a3a387d74411e911b70280c0c5eac041c5 |
|
MD5 | 1d149504092e16468c57ef4e0aeb5adf |
|
BLAKE2b-256 | 3fab60b27193f048ed3737250c337dc53ab8c18ea5ab1ba26465db4895a118de |