falconsw/软删除清理工具

从数据库中清理软删除的记录

1.0.0 2023-01-02 18:18 UTC

This package is auto-updated.

Last update: 2024-09-30 01:41:14 UTC


README

GitHub release GitHub issues Software License Total Downloads

此包将在您定义的时间间隔后自动删除软删除的行。

安装

步骤 1

使用以下命令使用 composer 需求此包

composer require falconsw/soft-delete-cleaner

步骤 2

服务提供者将自动注册。或者您可以在您的 config/app.php 文件中手动添加服务提供者

'providers' => [
    // ...
    \FalconSW\SoftDeleteCleaner\SoftDeleteCleanerServiceProvider::class,
];

步骤 3

现在是为命令设置计划的时候了。在您的 app/Console/Kernel.php 文件中,将以下代码粘贴到 schedule() 函数中

protected function schedule(Schedule $schedule)
{
    // ...
    $schedule->command(\FalconSW\SoftDeleteCleaner\SoftDeleteCleanerCommand::class)->hourly();
    // ...
}

在上面的代码中,计划每小时运行一次命令。您可以更改它。有关更多信息,请参阅此页面

步骤 4(可选)

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="FalconSW\SoftDeleteCleaner\SoftDeleteCleanerServiceProvider" --tag=config

您还可以在 .env 文件中设置 SOFT_DELETE_CLEANER_EXPIRE_TIME 的值,如下所示

...
SOFT_DELETE_CLEANER_EXPIRE_TIME='1 day'
...

用法

在您的使用了 SoftDeletes 特性的模型中,您可以使用以下代码启用软删除清理工具

class SampleModel extends Model
{
    use SoftDeletes;
    const SOFT_DELETE_CLEANER_STATUS = true;
}

只需在您的模型中写入 const SOFT_DELETE_CLEANER_STATUS = true 即可!您还可以使用以下行设置您删除实体的过期时间

const SOFT_DELETE_CLEANER_EXPIRE_TIME = '5 months';

在上面的代码中,软删除实体模型的有效期为 5 个月。最终的代码如下

class SampleModel extends Model
{
    use SoftDeletes;
    const SOFT_DELETE_CLEANER_STATUS = true;
    const SOFT_DELETE_CLEANER_EXPIRE_TIME = '5 months';
}

您可以为 SOFT_DELETE_CLEANER_EXPIRE_TIME 设置任何其他值,如 5(表示 5 天)、2 hours45 days2.5 months1 year 等。

注意:如果您在模型中没有为 SOFT_DELETE_CLEANER_EXPIRE_TIME 设置任何值,则带有 SOFT_DELETE_CLEANER_STATUS = true 的软删除模型将在名为 auto-hard-deleter.php 的配置文件中定义的时间后进行硬删除。

软删除清理工具命令

您还可以使用 artisan 命令手动删除过期的行

php artisan soft-delete:clean