yakovenko / laravel-backup-db
Simple Laravel database backup command with automatic cleanup
Installs: 99
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/yakovenko/laravel-backup-db
Requires
- php: ^8.0
- laravel/framework: ^8.0|^9.0|^10.0|^11.0|^12.0
README
yakovenko/laravel-backup-db - Simple Laravel database backup command with automatic cleanup options, secure MySQL connection, comprehensive logging, and configurable storage support.
Installation
Requirements
- PHP : ^8.0
- Laravel : ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0
- MySQL database
mysqldumpcommand available in system PATH
Install the Package
You can install the package via Composer:
composer require yakovenko/laravel-backup-db
Configuration
Publish the config file:
php artisan vendor:publish --provider="Yakovenko\LaravelBackupDb\LaravelBackupDbServiceProvider" --tag=config
This will create config/backup-db.php with the following options:
return [ // Number of days to keep backups 'cleanup_days' => env('BACKUP_DB_CLEANUP_DAYS', 15), // Enable automatic backup scheduling 'auto_schedule' => env('BACKUP_DB_AUTO_SCHEDULE', true), // Time when backup should run (24-hour format) 'schedule_time' => env('BACKUP_DB_SCHEDULE_TIME', '00:15'), // How often backup should run: 'daily', 'weekly', 'monthly' 'schedule_frequency' => env('BACKUP_DB_SCHEDULE_FREQUENCY', 'daily'), // Day for weekly/monthly backups (0=Sunday, 1=Monday, etc. for weekly; 1-31 for monthly) 'schedule_day' => env('BACKUP_DB_SCHEDULE_DAY', 1), // Storage disk for backups 'storage_disk' => env('BACKUP_DB_STORAGE_DISK', 'local'), // Storage directory for backups 'storage_directory' => env('BACKUP_DB_STORAGE_DIRECTORY', 'backup'), // Enable logging 'logging' => env('BACKUP_DB_LOGGING', true), ];
Automatic Scheduling
The package automatically schedules backups when auto_schedule is enabled in config. No need to manually add to Kernel.php!
Schedule Configuration Examples
Daily Backup at 2:30 AM
BACKUP_DB_SCHEDULE_TIME=02:30 BACKUP_DB_SCHEDULE_FREQUENCY=daily
Weekly Backup on Fridays at 1:00 AM
BACKUP_DB_SCHEDULE_TIME=01:00 BACKUP_DB_SCHEDULE_FREQUENCY=weekly BACKUP_DB_SCHEDULE_DAY=5
Monthly Backup on 15th at 3:00 AM
BACKUP_DB_SCHEDULE_TIME=03:00 BACKUP_DB_SCHEDULE_FREQUENCY=monthly BACKUP_DB_SCHEDULE_DAY=15
Disable Automatic Scheduling
BACKUP_DB_AUTO_SCHEDULE=false
Note:
- Time format:
HH:MM(24-hour format) - Weekly days: 0=Sunday, 1=Monday, ..., 6=Saturday
- Monthly days: 1-31
Usage
Create backup only
php artisan yas:backup --run
Create backup and delete old backups (older than configured days)
php artisan yas:backup --auto
Delete all backups and create new one
php artisan yas:backup --all
Delete only old backups (older than configured days)
php artisan yas:backup --d
Author
License
MIT