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

v1.1.0 2026-02-10 17:03 UTC

This package is auto-updated.

Last update: 2026-02-10 17:04:35 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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:

  1. Select the data source: backup, staging, or live
  2. Select dump type (if staging or live): Full dump or Only structure

Options

  • --dropExisting: Drop the database before import if it exists.
  • --files: Download and import files from public/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 --files option 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.