- How do I install and configure sameoldnick/laravel-backup-manager?
- Install it with Composer, then publish the package's backup-manager-config and backup-manager-migrations assets and run the migrations. The service provider follows conventional Laravel packaging, so configuration stays in config/backup-manager.php after publishing. For v3.0.0, make sure to run the cleanup_schedule_filesystem_configuration pivot migration as part of the upgrade.
- Which Laravel and PHP versions are supported by laravel-backup-manager 3.0?
- The technical evaluation provided here is written against v3.0.0 and does not enumerate a complete Laravel/PHP support matrix. Check the package's composer.json and release notes before upgrading, especially for after-commit queue semantics and route caching. Those constraints matter if you rely on php artisan optimize or queued cleanup jobs.
- Can I run laravel-backup-manager headless without the Inertia React UI?
- Yes. The Inertia/React admin UI is optional and exposed through responder abstractions, so commands and jobs can run without it. However, v3.0.0's cleanup disk scoping depends on destination_ids being populated, and the release notes warn the new scoping cannot be reached from the frontend until the UI is updated. Headless apps must manage destination_ids themselves.
- Does laravel-backup-manager back up both the database and application files?
- The package is described as creating, scheduling, and managing backups of your Laravel application's files and database. It supports configurable storage destinations for those backup artifacts. The provided context does not describe a restoration workflow, so treat restore as a separate verification item.
- How do I schedule backups and cleanup jobs with laravel-backup-manager v3?
- Configure the jobs.backup and jobs.cleanup settings after republishing the backup-manager-config file. In v3.0.0 the jobs honour connection, queue, group, delay, middleware, and after-commit options, so they can fit an existing queue topology. Cleanups dispatch CleanupJob rather than executing backup:clean directly, so a non-sync queue needs a running worker.
- Why are my laravel-backup-manager cleanup schedules being skipped after upgrading to v3?
- In v3.0.0, a cleanup schedule whose attached destinations are all inactive or invalid is skipped and logged instead of falling back to every disk. That is safer than deleting across unscoped disks, but it can turn a visible cleanup into an invisible no-op. Add log-based alerting and verify that each schedule has at least one active, valid destination.
- How do I attach storage destinations to cleanup schedules in laravel-backup-manager v3?
- Publish and run the cleanup_schedule_filesystem_configuration pivot migration, then populate destination_ids for each cleanup schedule. The v3.0.0 store and update validation includes destination_ids, which is capped at 255 to bound form-post fan-out. If you use the admin UI, the frontend must submit destination_ids for the scoping to take effect.
- Is backup:clean still available in laravel-backup-manager v3, and can it run with CleanupJob?
- The Artisan surface still includes backup:clean, but v3.0.0 cleanups dispatch CleanupJob instead of executing that command. The provided evaluation does not define an idempotency or concurrency contract between the command and the job. During rollout, avoid overlapping runs unless you have verified their retention and pruning behaviour in your app.
- What is the biggest production risk when upgrading to laravel-backup-manager 3.0.0?
- The largest operational risk is the queue dependency: cleanups now dispatch CleanupJob, and apps on a non-sync connection without a worker will silently accumulate jobs. The upgrade also introduces silent-skip behaviour for schedules with no active or valid destinations, which requires log-based alerting. The UI gating for destination_ids and the changed responder signature add app-side work.
- What causes NoValidDisksException in laravel-backup-manager and how should I handle it?
- v3.0.0 introduces NoValidDisksException for an explicitly empty disks list, which changes behaviour for programmatic PerformBackupService::dispatchBackupJob() callers. Validate destination configuration before dispatch and catch the exception where backup dispatch is part of a larger workflow. Also confirm that the destinations you expect are active and valid, since schedules with only inactive or invalid destinations are skipped.