Backups
Backups are essential for managing an application. They provide a safety net, allowing you to recover from data loss or corruption or restore your application to a previous state. They are also a key part of migrating an application to a new environment.
The Backups view of your application shows the Scheduled and On-demand backups that have been created.
The list of backups shows what was backed up and when with additional information and options to restore or download the backup or create new backups on demand.
How to create backups
- Scheduled backups are made according to the application's backup schedule and require no intervention from the user.
- On-demand backups can be made whenever you require.
To create a backup, from the Backups view of your application,
- Select Create backup for the server you want to backup.
- Choose what to backup: database, media or both.
- Hit Create backup (you may add a note to the backup)
How to work with existing backups
Select a particular backup to view more detailed information about it. More importantly, each backup has
- a Restore option
- an options menu, for further actions, such as Prepare download.
The Restore option
The Restore functionality gives you flexibility. You can choose what to restore (database or media) and its destination (application and environment).
A restore operation will overwrite content at the destination. Take a backup before restoring unless you are sure you will no longer need that content.
The Download option
To download a backup to your computer, select Prepare download from the action menu and choose the content you want to download. The files will be prepared asynchronously, and an email message containing links to the database and/or media files will be sent to you when they are ready.
The database will be made available in the form of a database dump
The media files will be made available as a tarred archive and include a manifest file listing contents.
Our backup system is designed with pragmatic, real-world needs and concerns.
Backups on Divio are in accordance with two key principles.
- Data integrity: the integrity of your data and content is paramount, and they must be kept safe.
- Portability: your application belongs to you. Your data and content must be as portable as possible so you can sign up for our services confident that you will never find yourself locked into them.
What's backed up?
Our backup system takes care of your applications:
- Database: the database that Django uses for persistent storage, made available for download as a binary database dump
- Media files: files uploaded/processed/stored by the application, made available for download as a tarred archive, and including a manifest file of contents
Your backups are made to encrypted storage.
Your application's codebase is not captured in our backups, as it is already versioned in Git.
Backup storage
Backups in AWS-based cloudspaces are stored in the same cloudspace as the application using AWS S3 Standard-IA storage class.
This storage class stores data redundantly across multiple data-centers called availability zones in the same cloudspace. Availability zones give customers the ability to operate production applications and databases that are highly available, fault tolerant, and scalable. All traffic between availability zones is encrypted.
Scheduled and on-demand backups
Backups are initiated in two different ways:
- on-demand - when the user requests it
- scheduled - according to a schedule determined by the application's subscription
Retention policies
On-demand backups
Various policies are available, but in all environments, this is set by default to a 30 days/3 backups policy, meaning that only the 3 most recent backups will be retained indefinitely, the rest would be deleted after 30 days.
Scheduled backups
Various policies are available but in all environments this is set by default to a 7-daily/4-weekly/12-monthly grandfather-father-son policy. This means that:
- Each day, the system will take a backup, and discard any daily backups older than seven days.
- Each week, it will relabel the oldest daily backup as a weekly backup and discard any weekly backups older than one month.
- Each month, it will relabel the oldest weekly backup as a monthly backup and discard any monthly backups older than one year.
After a year, the system will have retained:
- twelve monthly backups spanning the last year
- four weekly backups spanning the last month
- seven daily backups spanning the last week