Migrate textmedia Fehler beim TYPO3 Update

Beim Update auf 7.6 oder 8.7 kann es sein, dass diese Update Funktion einen Fehler hat:

Migrate CTypes text, image and textpic to textmedia and move file relations from „image“ to „asset_references“

Update failed!

SQL-ERROR: Column 'assets' cannot be null

Auch bei Update auf 8.7 kann dieser Fehler auftreten:

SQL-ERROR: Data truncated for column 'media' at row 6

Ursache sind Konvertierungs-Fehler von Text nach Integer, die Werte NULL oder „“ werden nicht richtig konvertiert. Es kann auch von der FAL Konvertierung noch der Filename als String in dem Feld stehen.
Mit diesem SQL Befehl kann man sich erst mal alle Einträge anzeigen lassen:

SELECT distinct(image) FROM tt_content;

Normalerweise sollten in „image“ nur noch Zahlenwerte wie 0,1,2 stehen. Doch manchmal steht da noch NULL oder der Filename.

Mit diesem Statement aktualisiert man alle leeren Einträge:

UPDATE `tt_content` SET image=0 WHERE image IS NULL;
UPDATE `tt_content` SET image=0 WHERE image LIKE '';

Wenn das nicht ausreicht, kann beim erneuten Update folgende Fehlermeldung kommen:

SQL-ERROR: Incorrect integer value: 'logo-webseite.jpg' for column 'assets' at row 1

Das bedeutet es sind noch Bilder mit Filename enthalten. Diese liegen bei 4.5 in uploads/pics, und nach dem 6.2 Update in fileadmin/_migrated. Wenn das Bild aber beim Update fehlt, wird der Eintrag nicht gelöscht sondern bleibt als String stehen.

Mit diesem Statemant kann man sich die Filenames anzeigen lassen, und dann manuell beheben:

SELECT * FROM tt_content WHERE image NOT REGEXP '^[[:digit:]]+$';

Wenn man einfach alle falschen Einträge entfernen möchte, kann man sie mit diesem Statement auf 0 setzen:

UPDATE tt_content SET image=0 WHERE image NOT REGEXP '^[[:digit:]]+$';

Danach sollte das Update fehlerfrei funktionieren.

2 Gedanken zu „Migrate textmedia Fehler beim TYPO3 Update

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.