The Multi-DB package is a Laravel library that offers utility functions for seamless management and operations across multiple databases. It allows developers to easily switch between database connections and run database-specific migrations with simple commands.
To install the Multi-DB package, add it to your Laravel project using Composer:
composer require faraztanveer/multi-db
- PHP:
^7.3|^8.0
- Laravel:
^8.0 || ^9.0 || ^10.0
Once installed, the package will automatically register its service provider.
By default, no additional configuration is required. However, you can publish the package's configuration file for customization:
php artisan vendor:publish --provider="MultiDB\MultiDBServiceProvider"
The DatabaseShifter
class lets you dynamically switch database connections at runtime.
// Access the multidb instance
$db = app('multidb');
// Shift to a new database connection
$db->shift('new_database', 'new_host', 'new_username', 'new_password', 'new_port');
To revert back to the default database defined in your .env
file:
$db->setDefaultDb();
You can retrieve the current database name at runtime using:
$db->currentDb();
This package provides a custom Artisan command that allows you to run migrations on a specific database connection.
Run migrations for a specific database using this command:
php artisan multidb:migrate --database=your_database --path=path/to/migrations --host=127.0.0.1 --username=root --password=your_password --port=3306
Options:
--database
(required): Specify the name of the database.--path
: Path to the migration files (optional).--host
: Database host (default:127.0.0.1
).--username
: Database username (default:root
).--password
: Database password (optional).--port
: Database port (default:3306
).--force
: Run migrations in production without confirmation.
Once the migrations are complete, the connection will automatically reset to the default database.
This package is licensed under the MIT License. For more information, refer to the LICENSE file in the repository.
Contributions are welcome! Feel free to submit issues, suggestions, or pull requests to improve this package.
GitHub Repository: DB Shifter