A Laravel package to clean up models
Most databases will contain some records that must be cleaned up. The reasons why a record can become unneeded are diverse:
- maybe it's a temporary record that was only needed for a little while
- if you're logging stuff to a table, a record may become too old to be of interest anymore
- ...
use Spatie\ModelCleanup\GetsCleanedUp;
use Illuminate\Database\Eloquent\Builder;
use Carbon\Carbon;
class LogItem extends Model implements GetsCleanedUp
{
...
public static function cleanUp(Builder $query) : Builder
{
//delete up all records older than a year
return $query->where('created_at', '<', Carbon::now()->subYear());
}
}
In the configuration file you can specify the directory containing your models. The package will automatically detect all classes that implement the GetsCleanedUp
-interface in that directory.
When firing the clean:models
artisan command all records selected by the cleanUp
-function will be deleted. Of course you can schedule that command to automate the cleanup process.
Take a look at the package on GitHub. Our other Laravel packages are listed on our company website.
What are your thoughts on "A Laravel package to clean up models"?