bogdanghervan/irradiate

Database wizardry on top of Laravel excellence.

6.1.1 2022-05-31 17:03 UTC

This package is auto-updated.

Last update: 2024-04-29 03:18:33 UTC


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.