Included Artisan Commands
The package includes two robust commands for managing database backups directly from the CLI.
easy-backups:db:create
Creates a new atomic database backup.
php artisan easy-backups:db:create {--of-database=} {--to-disk=} {--compress} {--password=} {--name=} {--max-remote-backups=} {--max-remote-days=} {--max-local-backups=} {--max-local-days=} {--local} {--keep-local}Options
| Option | Description | Default Behavior |
|---|---|---|
--of-database | The database connection name to back up. | Defaults to your application's default connection. |
--to-disk | The filesystem disk to store the backup on. | Defaults to backup (or configured remote disk). |
--compress | Force compression into a .zip or .tar.gz archive. | If omitted, behavior depends on config. |
--password | Encrypt the backup with this password. Implies compression. | No encryption. |
--name | A custom suffix for the filename. | |
--max-remote-backups | Number of backups to keep on the remote disk. | No cleanup is performed. |
--max-remote-days | Delete backups older than N days on remote. | No cleanup is performed. |
--max-local-backups | Number of backups to keep on the local disk. | No cleanup is performed. |
--max-local-days | Delete local backups older than N days. | No cleanup is performed. |
--local | Store the backup only on the local disk. | Uploads to remote disk. |
--keep-local | Keep the local copy after a successful remote upload. Required to make --max-local-* effective in remote-upload flows. No-op when --local is set. | Local copy is deleted after upload. |
The
--max-local-*options only take effect when there is a local copy after the run — i.e. when--localis used, or when--keep-localis combined with a remote upload. In the default flow (upload to remote without--keep-local), the local file is deleted right after upload.
Usage Examples
Standard backup to Remote Storage (Default):
php artisan easy-backups:db:create --compressLocal-only snapshot with a name:
php artisan easy-backups:db:create --local --name="pre-migration"Backup with retention policy (keep last 10):
php artisan easy-backups:db:create --max-remote-backups=10Backup with age-based retention (keep 30 days):
php artisan easy-backups:db:create --max-remote-days=30Local-only backup with combined retention (keep last 10 and not older than 5 days):
php artisan easy-backups:db:create --of-database=mysql --local --max-local-backups=10 --max-local-days=5Remote upload that also keeps a local copy with both retentions:
php artisan easy-backups:db:create --keep-local --max-remote-backups=30 --max-local-backups=3easy-backups:db:restore
Restores a database from a backup. Runs in interactive mode by default.
php artisan easy-backups:db:restore {--latest} {--force} {--from-disk=} {--to-database=} {--source-env=} {--password=} {--local}Available under the alias
easy-backups:db:importas well.
Options
| Option | Description | Default Behavior |
|---|---|---|
--from-disk | The filesystem disk where the backup is stored. | Defaults to backup. |
--to-database | The target database connection to overwrite. | Defaults to default connection. |
--source-env | The environment to pull backups from (e.g., production). | Defaults to current environment. |
--latest | Skip the backup-selection prompt and pick the most recent backup. | Runs interactive selection. |
--force | Run fully unattended: pick the latest backup and skip all prompts (source, wipe confirmation, local-copy). | Runs interactive selection. |
--password | Password for encrypted backups. | |
--local | Force using the local disk as source. | Uses remote disk. |
--latestonly auto-selects the file. For a non-interactive script (e.g. a reset/seed routine) use--force. With--forcethe source defaults to the remote disk in theproductionenvironment — combine with--localto pull the latest local backup instead.
Usage Examples
Interactive restore:
php artisan easy-backups:db:restoreRestore latest backup (skips file selection, still confirms):
php artisan easy-backups:db:restore --latestFully unattended restore (CI/CD, reset scripts):
php artisan easy-backups:db:restore --force --localRestore a backup from the staging environment:
php artisan easy-backups:db:restore --source-env=stagingRestore from local storage:
php artisan easy-backups:db:restore --local