UPGRADING.md
v10 requires PHP 8.4+ and Laravel 12+. If you are on an older version of PHP or Laravel, stay on v9.
In config/backup.php, if you had encryption set to null or false, change it to 'none'. The supported values are now 'none', 'default', 'aes128', 'aes192', 'aes256'.
All events now carry primitive properties (string $diskName, string $backupName) instead of BackupDestination or BackupDestinationStatus objects. Update your listeners:
// before
$event->backupDestination->diskName();
// after
$event->diskName;
This applies to BackupWasSuccessful, BackupHasFailed, CleanupWasSuccessful, CleanupHasFailed, and HealthyBackupWasFound. For UnhealthyBackupWasFound, replace $event->backupDestinationStatus with $event->diskName, $event->backupName, and $event->failureMessages.
The consoleOutput() helper has been replaced by backupLogger(). If you were calling consoleOutput() anywhere, replace it with backupLogger().
If you have a custom cleanup strategy extending CleanupStrategy, change the constructor to accept Spatie\Backup\Config\Config instead of Illuminate\Contracts\Config\Repository. Access config values via typed properties instead of array access:
// before
$this->config->get('backup.cleanup.default_strategy.keep_all_backups_for_days');
// after
$this->config->cleanup->defaultStrategy->keepAllBackupsForDays;
BackupJob::disableNotifications() has been removed. Use EventHandler::disable() instead. Note that events now always fire regardless of the --disable-notifications flag — only notification delivery is suppressed.health_checks config keys now contain actual check classes. Modify your config file so it uses the actual check classes.The config file has been renamed. Change the name of the config file from laravel-backup.php to backup.php