Breaking: #93029 - Dropped deleted field from sys_refindex

See forge#93029

Description

The database field deleted has been removed from table sys_refindex. Therefore, the table does no longer store relations between soft deleted records.

Following properties and methods of class \TYPO3\CMS\Core\Database\ReferenceIndex have been set to protected:

  • temp_flexRelations
  • relations - not scanned by extension scanner
  • hashVersion
  • getWorkspaceId() - not scanned by extension scanner
  • getRelations_procDB()
  • setReferenceValue_dbRels()
  • setReferenceValue_softreferences()
  • isReferenceField() - not scanned by extension scanner

Following methods of class \TYPO3\CMS\Core\Database\ReferenceIndex have been removed:

  • generateRefIndexData()
  • createEntryData()
  • createEntryData_dbRels()
  • createEntryData_softreferences()

Impact

Accessing the properties of class ReferenceIndex or calling dropped or protected methods will raise fatal PHP errors.

Querying the deleted field of table sys_refindex will raise a doctrine dbal exception.

Affected Installations

The hash sums of existing table rows change. The reference index should be updated, typically by using the CLI command bin/typo3 referenceindex:update

Codewise, instances with extensions that query table sys_refindex or use class ReferenceIndex may be affected. The extension scanner helps to find some usages.

Migration

Use the CLI command bin/typo3 referenceindex:update to update the reference index.

The sys_refindex.deleted field should be dropped from database queries.

When accessing class ReferenceIndex, use the main API method ->updateRefIndexTable(), plus a couple of other less often used methods.