bogdanghervan / irradiate
Database wizardry on top of Laravel excellence.
Installs: 5 863
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^7.2|^8.0
- illuminate/database: >=6.0
README
Database wizardry on top of Laravel excellence. This package comes with some goodies to work with data in bulk in Laravel, however it is incomplete since it only implements the MySQL and SQLite grammars (contribute).
Features
Bulk insert or update
This is achieved using INSERT ... ON DUPLICATE KEY UPDATE
for MySQL and INSERT ... ON CONFLICT DO UPDATE
for SQLite.
Buffered inserts
A service is provided that collects data in memory and flushes it to database when a threshold is reached.
Legacy features
- Chunk results and use limit at the same time
- (MySQL only) Retry starting database transaction when connection is lost (no longer necessary in newer Laravel versions)
Installation
Simply run this from the root of your Laravel project:
composer require bogdanghervan/irradiate
Configuration
To start using the package within Laravel, add this to the list of providers in config/app.php
:
'Irradiate\Database\DatabaseServiceProvider',
Additionally, all the models should inherit from \Irradiate\Database\Eloquent\Model
. Ideally there should already be a generic base model at the application level that all concrete models extend from, so make that extend the base model within Irradiate.
You're good to go!
Limitations
MySQL and SQLite only.
Contributing
Pull requests are welcome. All contributions should follow the PSR-2 coding standard.
License
Irradiate is licensed under the MIT License.