Collectors are used as a method of collecting data to be processed for deletion.
The VersionedCollector class is used to get Version Database records that are considered expired* (see below) and provides an SQLDelete Statement that will remove all these records when executed. It has capability of batching queries for effeciency and can be configured via Configuration API.
* Expired is calculated using the
keep_lifetimeandkeep_limitsetting
| Parameter | Default | Type | Description |
|---|---|---|---|
| keep_limit | 2 | Integer | Number of Version records to always maintain |
| keep_lifetime | 180 | Integer | Age of records required for deletion |
| keep_unpublished_drafts | false | Boolean | Flag whether to keep unpublished draft versions |
| delete_published_records | false | Boolean | Flag whether delete published records |
| delete_published_versions | false | Boolean | Flag whether to delete published versions |
| deletion_record_limit | 100 | Integer | Maximum number of base records for collection |
| deletion_version_limit | 100 | Integer | Maximum number of Versioned records per query |
| query_limit | 10 | Integer | Maximum number of SQL Queries to return in collection |
| base_classes | Empty | Array* | Base classes to be collected against |
| processors | ** | Array* | Processor classes fot executing collection |
* Array of Strings
** Replacement for 'SQLExpressionProcessor::class' evaluation
For Applications using Fluent, an Extension also exists for ensuring data from _Localized_Versions tables is also collected and deleted. Add the FluentVersionCollectorExtension class to the VersionedCollector in your Application.
---
Name: MyGarbageCollector
---
# Register Versioned collector with service
SilverStripe\GarbageCollector\GarbageCollectorService:
collectors:
- 'SilverStripe\GarbageCollector\Collectors\VersionedCollector'
# Apply Fluent extension to Versioned collector
SilverStripe\GarbageCollector\Collectors\VersionedCollector:
extensions:
- 'SilverStripe\GarbageCollector\Extensions\FluentVersionedCollectorExtension'The ChangeSetCollector class is used to get ChangeSet Database records that are considered expired* (see below) and provides an SQLDelete Statement that will remove all these records when executed. It has capability of batching queries for effeciency and can be configured via Configuration API.
* Expired is calculated using the
deletion_lifetimesetting
| Parameter | Default | Type | Description |
|---|---|---|---|
| deletion_lifetime | 100 | Integer | Age of records required for deletion |
| deletion_limit | 100 | Integer | Maximum number of ChangeSet records per query |
| query_limit | 5 | Integer | Maximum number of SQL Queries to return in collection |
| processors | ** | Array* | Processor classes fot executing collection |
* Array of Strings ** Replacement for 'SQLExpressionProcessor::class' evaluation
The ObsoleteTableCollector class is used to get _obsolete_ Database tables and provides a collection of RawSQL Statements that will remove all these tables when executed.