cambis / silverstripe-pruner
一个简单的开发者工具,用于清除数据库表。
v0.5.0
2024-08-19 23:53 UTC
Requires
- php: ^7.4 || ^8.0
- silverstripe/framework: ^4.0 || ^5.0
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