Project

General

Profile

Actions

Bug #105604

closed

TypeError: Cannot assign null to Column::$_comment of type string

Added by Franz Holzinger 3 months ago. Updated 3 months ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Database API (Doctrine DBAL)
Target version:
-
Start date:
2024-11-15
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
13
PHP Version:
8.3
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

After upgrade from TYPO3 12 to 13 the backend hangs in this error message:

Whoops, looks like something went wrong.
(1/1) TypeError
Cannot assign null to property Doctrine\DBAL\Schema\Column::$_comment of type string

in /path/typo3_src-13.4.1/typo3/sysext/core/Classes/Cache/Frontend/VariableFrontend.php line 85
$rawResult = $this->backend->get($entryIdentifier);
if ($rawResult === false) {
return false;
}
return $this->backend instanceof TransientBackendInterface ? $rawResult : unserialize($rawResult);
}
}
at unserialize()
in /path/typo3_src-13.4.1/typo3/sysext/core/Classes/Cache/Frontend/VariableFrontend.php line 85
$rawResult = $this->backend->get($entryIdentifier);
if ($rawResult === false) {
return false;
}
return $this->backend instanceof TransientBackendInterface ? $rawResult : unserialize($rawResult);
}
}
at TYPO3\CMS\Core\Cache\Frontend\VariableFrontend->get()
in /path/typo3_src-13.4.1/typo3/sysext/core/Classes/Database/Schema/SchemaInformation.php line 95
*/
public function introspectTable(string $tableName): Table {
$identifier = $this->connectionIdentifier . '-table-' . $tableName;
$table = $this->cache->get($identifier);
if ($table instanceof Table) {
return $table;
}
$table = $this->connection->createSchemaManager()->introspectTable($tableName);
at TYPO3\CMS\Core\Database\Schema\SchemaInformation->introspectTable()
in /path/typo3_src-13.4.1/typo3/sysext/core/Classes/Database/Connection.php line 407
protected function ensureDatabaseValueTypes(string $tableName, array &$data, array &$types): void {
// If types are incoming already (meaning they're hand over to insert() for instance), don't auto-set them.
$setAllTypes = $types === [];
$tableDetails = $this->getSchemaInformation()->introspectTable($tableName);
$databasePlatform = $this->getDatabasePlatform();
array_walk($data, function (mixed &$value, string $key) use ($tableDetails, $setAllTypes, &$types, $databasePlatform): void {
$typeName = ($types[$key] ?? '');
if (!$setAllTypes && is_string($typeName) && $typeName !== '' && Type::hasType($typeName)) {


Files

TYPO3 Exception.html.txt (19.5 KB) TYPO3 Exception.html.txt Franz Holzinger, 2024-11-15 09:41
Actions #1

Updated by Franz Holzinger 3 months ago

The backend login works after deleting the typo3temp/var folder.

Actions #2

Updated by Garvin Hicking 3 months ago

  • Status changed from New to Closed

Thanks for the update; always clear caches (install tool or CLI) when upgrading. :)

Actions

Also available in: Atom PDF