topoff / laravel-database-downloader
Dumps + Downloads a mysql database from a production server and imports it into the dev environment
Fund package maintenance!
topoff
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 1
pkg:composer/topoff/laravel-database-downloader
Requires
- php: ^8.3
- illuminate/contracts: ^11.0||^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/boost: ^2.1
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- rector/rector: ^2.3
- spatie/laravel-ray: ^1.35
This package is auto-updated.
Last update: 2026-02-10 17:04:35 UTC
README
This package allows you to easily dump and download a MySQL database from a production or backup server and import it into your local development environment. It also supports downloading files from storage and provides an event-driven way to handle post-import tasks.
Installation
You can install the package via composer:
composer require topoff/laravel-database-downloader
You can publish the config file with:
php artisan vendor:publish --tag="database-downloader-config"
Usage
The package provides an interactive command to download and import the database:
php artisan db:download
You'll be prompted to:
- Select the data source:
backup,staging, orlive - Select dump type (if staging or live):
Full dumporOnly structure
Options
--dropExisting: Drop the database before import if it exists.--files: Download and import files frompublic/storage.--dbName=: Use a different database name instead of the default.--import-from-local-file-path=: Import from a specific local file instead of downloading.
Events
After a successful import, the package dispatches a Topoff\DatabaseDownloader\Events\DatabaseImported event. You can listen to this event to perform post-import tasks like data sanitization or environment-specific adjustments.
// Optionally Register the Listener in your EventServiceProvider or AppServiceProvider, Laravel does this automatically Event::listen( \Topoff\DatabaseDownloader\Events\DatabaseImported::class, \App\Listeners\YourPostImportListener::class, );
The event contains the following properties:
filesImported: A boolean indicating if the--filesoption was used.
Laravel Boost Integration
This package is configured to work with Laravel Boost for enhanced AI-assisted development.
Key features:
- ✅ Artisan script for MCP server support
- ✅ WorkbenchServiceProvider with automatic path configuration
- ✅ CLAUDE.md with package-specific guidelines
- ✅ Security best practices and coding standards
For detailed setup and usage instructions, see BOOST.md.
Security
This package has been thoroughly reviewed for security vulnerabilities:
- Input validation and sanitization
- Shell command injection prevention
- Path traversal protection
- Secure credential handling
For detailed security information, see SECURITY.md.
Development
Code Quality Tools
This package uses several tools to maintain code quality:
Laravel Pint (Code Formatting)
Format code according to Laravel standards:
composer format
Rector (Automated Refactoring)
Preview potential code improvements:
composer rector-dry
Apply automated refactorings:
composer rector
PHPStan (Static Analysis)
Run static analysis:
composer analyse
Run All Quality Checks
composer lint
This runs both Pint and PHPStan.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.