cambis/silverstripe-pruner

一个简单的开发者工具,用于清除数据库表。

安装: 4

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 1

开放问题: 2

类型:silverstripe-vendormodule

v0.5.0 2024-08-19 23:53 UTC

This package is auto-updated.

Last update: 2024-09-20 21:30:34 UTC


README

一个简单的开发者工具,用于清除数据库表。此模块提供了一个可配置的任务,用于在事务中截断数据库表。

先决条件 🦺

php ^7.4 || ^8.0
silverstripe/framework ^4.0 || ^5.0

安装 👷‍♀️

使用 composer 安装。

composer require --dev cambis/silverstripe-pruner

配置 🚧

创建一个配置文件。

---
Name: app_pruner
---
Cambis\SilverstripePruner\Task\PruneSelectedORMTablesTask:
  # List the fqn names of the DataObjects you want to truncate
  truncated_classes:
    - My\Record\To\Truncate
  # Any extra tables such as those from silverstripe/versioned etc.
  truncated_tables:
    - Truncate_Live
    - Truncate_Versions
  # Defaults to false, add this line if you want to run the task in a production environment
  can_run_in_production: true

您还可以使用扩展钩子动态更新截断的表。此库提供了带有钩子方法定义的 trait。

<?php

namespace App\Extension;

use Cambis\SilverstripePruner\Concern\UpdateTruncatedClasses;
use Cambis\SilverstripePruner\Concern\UpdateTruncatedTables;
use Cambis\SilverstripePruner\Task\PruneSelectedORMTablesTask;
use SilverStripe\Core\Extension;

/**
 * @extends Extension<PruneSelectedORMTablesTask>
 */
final class MyPrunerExtension extends Extension
{
    use UpdateTruncatedClasses;
    use UpdateTruncatedTables;

    protected function updateTruncatedClasses(array &$truncatedClasses): void
    {
        $truncatedClasses[] = \My\Record\To\Truncate::class;
    }

    protected function updateTruncatedTables(array &$truncatedTables): void
    {
        $truncatedTables[] = 'Truncate_Live';
        $truncatedTables[] = 'Truncate_Versions';
    }
}

用法 🏃🏃🏃

vendor/bin/sake dev/tasks/prune-selected-orm-tables confirm=1