Direkt zur Hauptnavigation springen Direkt zum Inhalt springen
Alle Beiträge

TYPO3: „There is no column with name t3ver_oid“ beim Erweitern einer Tabelle

Wir wollten die Tabelle einer fremden Extension um ein Feld erweitern — news_layout in tx_news_domain_model_news. Der Eintrag in der ext_tables.sql stand, das TCA-Override stand, das Extbase-Mapping stand. Trotzdem brach die Datenbankanalyse im Backend ab:

There is no column with name 't3ver_oid' on table 'tx_news_domain_model_news'

Die Meldung führt in die Irre: t3ver_oid ist ein Feld der Versionierung, mit dem eigenen Feld hat es nichts zu tun. Sie entsteht, weil TYPO3 die Tabellendefinition aus mehreren Quellen zusammensetzt — und in dem Moment nur den eigenen Ausschnitt kennt, nicht den der Extension, zu der die Tabelle gehört.

Was nicht half

Die Abhängigkeit in der ext_emconf.php unter constraints/depends nachzutragen war richtig und gehört dazu — die Meldung blieb aber. Auch Dump Autoload im Wartungsbereich änderte nichts: Der Befehl schreibt die Klassenzuordnung neu, mehr nicht.

Was half

Die Extension einmal zu deaktivieren und wieder zu aktivieren. Erst dabei wird die Einrichtung vollständig durchlaufen, und die Tabellendefinitionen werden neu eingesammelt.

Auf einer Installation mit Composer — heute der Normalfall — gibt es dieses Deaktivieren im Backend nicht mehr. Der gleichwertige Schritt ist:

vendor/bin/typo3 extension:setup
vendor/bin/typo3 cache:flush

Danach greift die Datenbankanalyse wieder auf den vollständigen Stand zu.

Die Lehre

Wenn eine Meldung ein Feld nennt, das im eigenen Code nirgends vorkommt, lohnt der Blick auf den Zustand der Installation, bevor man den eigenen Code ein viertes Mal liest. Caches und Einrichtungsschritte erklären mehr Fehlersuchen, als einem lieb ist.

Danke an Patrik Tschersich, der sich durch diese Fehlersuche gearbeitet und sie aufgeschrieben hat.

Geprüft mit TYPO3 14.