DEV Community

Cover image for Laravel 9 - Prunable trait to automatically remove models from your database
Sandro Jhuliano Cagara
Sandro Jhuliano Cagara

Posted on

Laravel 9 - Prunable trait to automatically remove models from your database

You can use the Prunable trait to automatically remove models from your database.

(ex.) You can permanently remove soft deleted models after a few days.

class ExampleClass extends Model
{
    use SoftDeletes;
    use Prunable;

    public function prunable()
    {
        // Files matching this query will be pruned
        return static::query()->where('deleted_at', '<=', now()->subDays(14));
    }

    protected function pruning()
    {
        // Remove the file from s3 before deleting the model
        Storage::disk('s3')->delete($this->filename);
    }
}
Enter fullscreen mode Exit fullscreen mode

Add PruneCommand to your schedule (app/Console/Kernel.php)

$schedule->command(PruneCommand::class)->daily();
Enter fullscreen mode Exit fullscreen mode

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more