Bug Description
SwitchableControllerActionsPluginUpdater throws a fatal Doctrine\DBAL\Exception\InvalidFieldNameException
on TYPO3 13+ because it queries the list_type column which was removed from tt_content in TYPO3 13.
Steps to Reproduce
- Install cart_products on TYPO3 13 or 14
- Run
vendor/bin/typo3 upgrade:run --no-interaction
- Exception is thrown immediately
Error
Doctrine\DBAL\Exception\InvalidFieldNameException
An exception occurred while executing a query: Unknown column 'list_type' in 'SELECT'
Root Cause
In Classes/Updates/SwitchableControllerActionsPluginUpdater.php, the method getMigrationRecords()
directly queries list_type without first checking if the column exists:
return $queryBuilder
->select('uid', 'list_type', 'pi_flexform')
->from('tt_content')
->where(
$queryBuilder->expr()->in('list_type', ...)
)
->executeQuery()
->fetchAllAssociative();
This is called from updateNecessary() → checkIfWizardIsRequired() → getMigrationRecords(),
so the exception occurs even before any migration runs.
Expected Behavior
The wizard should check if the list_type column exists before querying it, similar to how
TYPO3\CMS\Core\Upgrades\AbstractListTypeToCTypeUpdate::columnsExistInContentTable() does it.
Alternatively, wrap the query in a try-catch in its MigratePlugins wizard.
Environment
TYPO3: 14.x
cart_products: dev-main
PHP: 8.4
Bug Description
SwitchableControllerActionsPluginUpdaterthrows a fatalDoctrine\DBAL\Exception\InvalidFieldNameExceptionon TYPO3 13+ because it queries the
list_typecolumn which was removed fromtt_contentin TYPO3 13.Steps to Reproduce
vendor/bin/typo3 upgrade:run --no-interactionError
Doctrine\DBAL\Exception\InvalidFieldNameException
An exception occurred while executing a query: Unknown column 'list_type' in 'SELECT'
Root Cause
In
Classes/Updates/SwitchableControllerActionsPluginUpdater.php, the methodgetMigrationRecords()directly queries
list_typewithout first checking if the column exists:This is called from updateNecessary() → checkIfWizardIsRequired() → getMigrationRecords(),
so the exception occurs even before any migration runs.
Expected Behavior
The wizard should check if the list_type column exists before querying it, similar to how
TYPO3\CMS\Core\Upgrades\AbstractListTypeToCTypeUpdate::columnsExistInContentTable() does it.
Alternatively, wrap the query in a try-catch in its MigratePlugins wizard.
Environment
TYPO3: 14.x
cart_products: dev-main
PHP: 8.4