Skip to main content

A simple Django app to make rotating backups of the Django database and media files.

Project description

Django-Rotating-Backup

This is a simple app to create rotating backups from the Django database and Media files.

Quick start

  1. Install django-rotating-backups using pip:

    pip install django-rotating-backup
    
  2. Add "django-rotating-backups" to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...
        'django_rotating_backup',
    ]
    
  3. Add python manage.py create_backup to a hourly cron job.

  4. Add settings to the django settings or use environment settings. Please not that environment variables have precedent over the settings configured in the settings.

Settings

Name Description
DRB_BACKUP_HOURS_TO_KEEP The number of hourly backups to keep
DRB_BACKUP_DAYS_TO_KEEP The number of daily backups to keep
DRB_BACKUP_WEEKS_TO_KEEP The number of weekly backups to keep
DRB_BACKUP_MONTHS_TO_KEEP The number of monthly backups to keep
DRB_DESTINATION_FOLDER Where to store the backups
DRB_ENABLE_SQLITE_BACKUP_COPY Set to True to make backup copies for SQLite databases
DRB_ENABLE_DATABASE_DUMPS Set to True to enable SQL dumps of databases
DRB_ENABLE_MEDIA_BACKUPS Set to True to enable Media folder backups
DRB_ENABLE_REMOTE_SYNC Set to True to enable remote sync of backup files
DRB_RSYNC_HOST The remote host where to sync to
DRB_RSYNC_REMOTE_PATH The path on the remote server
DRB_RSYNC_USER The user to connect as
DRB_RSYNC_PUB_KEY The ssh public key to use

Example

...
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
...

# Settings for Django Rotating Backup
DRB_BACKUP_HOURS_TO_KEEP = 24
DRB_BACKUP_DAYS_TO_KEEP = 7
DRB_BACKUP_WEEKS_TO_KEEP = 4
DRB_BACKUP_MONTHS_TO_KEEP = 3

DRB_DESTINATION_FOLDER = os.path.join(BASE_DIR, 'backups')

DRB_ENABLE_SQLITE_BACKUP_COPY = True
DRB_ENABLE_DATABASE_DUMPS = True
DRB_ENABLE_MEDIA_BACKUPS = True

DRB_ENABLE_REMOTE_SYNC = True
DRB_RSYNC_HOST = '192.168.2.6'
DRB_RSYNC_REMOTE_PATH = '/home/backupuser/backup/'
DRB_RSYNC_USER = 'backupuser'
DRB_RSYNC_SSH_KEY = '/Users/backupuser/.ssh/id_rsa'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-rotating-backup-1.0.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

django_rotating_backup-1.0.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file django-rotating-backup-1.0.1.tar.gz.

File metadata

  • Download URL: django-rotating-backup-1.0.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.0

File hashes

Hashes for django-rotating-backup-1.0.1.tar.gz
Algorithm Hash digest
SHA256 dc8678588f868e1646c32eb6f50a0a08d8c4612e8e582872183f63de94a1578a
MD5 1094ed0d02d10e45703e4a158d475022
BLAKE2b-256 61144f7d119f659ea9fda713726396028845f2215738b8a650e05cbb3b56230c

See more details on using hashes here.

File details

Details for the file django_rotating_backup-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: django_rotating_backup-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.0

File hashes

Hashes for django_rotating_backup-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9bcb36afe3a7f3b9735cd68665b2d65a4c3e6b7d1720abf45b7715fd51d14d8a
MD5 f054af96d208a4ded2e96a2cababe589
BLAKE2b-256 82f6b36b187ee12583cdc8a293bd91d5b4a0faf6fd3209b8f3807399283680ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page