Differential Backups
Differential backups only include files that changed since the last full backup, dramatically reducing size and time for large sites.
How It Works
- Full backup creates a file manifest (path + size + mtime for every file) and stores it in the backup record
- Differential backup loads the most recent full backup's manifest and compares it against the current filesystem
- Only new or modified files are included in the differential archive
- The database is always fully dumped (no incremental DB support)
Setting Up
- Create a profile with type Full — run this on a weekly schedule
- Create a profile with type Differential — run this daily or hourly
- Both profiles should use the same exclusion filters for consistency
Restore from Differential
To restore to a specific point in time:
- Restore the base full backup first
- Then restore the differential backup on top
The differential archive only contains changed files, so the full backup provides the complete base.
Fallback Behavior
If no full backup with a manifest exists for the profile, a differential backup automatically runs as a full backup instead. This ensures the first run always creates a usable base.
Manifest Storage
The manifest is stored as JSON in the manifest column of #__mokobackup_records. It contains:
Only full backups store manifests. Differential backups reference the most recent full backup's manifest for comparison.