[TYPO3-german] Update 7.6.14 auf 7.6.15 (SYS_FILE_METADATA.FE_GROUPS)

Michael_OF michaelof at rocketmail.com
Fri Feb 3 17:51:40 CET 2017


Mikel <lists at con-version.com>: VIELEN LIEBEN DANK !!!

Deine Antwort zur Frage "Typo3 7.6.13: Speichern heißt das neue Verlieren ;-/. Eingaben verschwinden":

> Hallo Florian,
>
> ich vermute, es gab auch ein Update der SQL-Version, richtig?
> Dann liegt es wahrscheinlich am Strict-Mode der SQL-Version. Ab Version 5.5 (oder vielleicht war es auch 5.6) wurde
der Strict-Mode zum Default gemacht.
>
> Du kannst dies nun global ändern (in der MySQL Konfiguration) oder in der LocalConfiguration im SYS-Array folgenden
Wert setzen:
> 'setDBinit' => 'SET SESSION sql_mode=\'\'',
> Ich hoffe, ich konnte helfen.
>
> Mikel

hat en passant auch meine aktuellen Probleme mit diversen Extensions gelöst. Der STRICT Mode war "schuld", da bei mir
alles neue Software-Versionen von Anfang an gesetzt und erstmals bei Installation der Extensions aufgefallen.

Ich habe Deine Variante

	setDBinit = SET SESSION sql_mode=''

über das Install Tool eingetragen, jetzt läuft alles perfekt.

Eine Anmerkung erlaube ich mir dazu aber:

Ich habe ziemlich lange Erfahrungen mit diversen relationalen Datenbanken. MySQL/MariaDB wiederum kenne ich im
wesentlichen bisher nur als reinen Container, installieren und gut ist's.

Daher staune ich gerade, dass es sowas wie den STRICT Modus überhaupt gibt. Gruselig in meinen Augen, OHNE diesen zu
arbeiten, und sich wie hier konkret bei INSERTs darauf zu verlassen, dass schon was passendes in der Datenbank ankommen
wird :-S Aber vielleicht bin ich da etwas zu sehr SQL-"Purist". Ich kann durchaus verstehen, warum TYPO3 es so macht:
Wenn eine Extension System(kern)tabellen erweitern darf (wie hier SYS_FILE_METADATA, TT_CONTENT), dann können andere
Module das ja vorher nicht wissen.

Jedenfalls würde ich dringend empfehlen, das Ausschalten des STRICT Modus so lokal wie möglich durchzuführen. Also wie
in Deinem Beispiel durch setDBinit für eine SESSION und nicht komplett für eine INSTANZ.

Insbesondere, wenn sich, wie bei mir, diverse Software die MariaDB Instanz mit TYPO3 teilt. Wenn diese anderen Systeme
sich nämlich auf den SQL-Standard (=STRICT) verlassen sollten (was man bei Standards ja durchaus mal tun darf), sind
hier alle Türen für Seiteneffekte offen.


Viele Grüße,
Michael




Am 02.02.2017 um 22:06 schrieb Michael_OF:
> Hallo zusammen,
> 
> 
> es hat zwar niemand geantwortet, aber vielleicht interessieren meine zwischenzeitlichen Erkenntnisse trotzdem:
> 
> 
> Da der Database Analyzer für 7.6.15 ein NOT NULL Feld haben möchte, habe ich durch einen Update in der DB alle NULL
> Vorkommnisse in der Spalte auf '' (Empty String gesetzt).
> 
> Danach den DB Upgrade durchgeführt.
> 
> Danach festgestellt, dass kein einziger Upload mehr funktioniert, da beim Upload nun mal ein NULL Wert in der Spalte
> SYS_FILE_METADATA.FE_GROUPS eingetragen werden soll.
> 
> Ich habe also daher
> a) einen FORGE Issue aufgemacht: https://forge.typo3.org/issues/79589 und
> b) die Spalte wieder auf "NULL erlaubt" gesetzt.
> 
> 
> Gruß,
> Michael
> 
> 
> 
> 
> Am 13.01.2017 um 16:44 schrieb Michael_OF:
>> Hallo liebe Listenmitglieder,
>>
>>
>> ich habe gerade 7.6.14 auf 7.6.15 aktualisiert.
>>
>> Der Database Analyzer im Install Tool möchte folgendes ALTER TABLE statement ausführen:
>>
>> ALTER TABLE sys_file_metadata CHANGE fe_groups fe_groups tinytext NOT NULL;
>>
>> Kann das aber nicht, weil: Database update failed / Error: Invalid use of NULL value.
>>
>> Eindeutige Fehlermeldung bzgl. (My)SQL: Man kann keine Tabellenspalte auf "NOT NULL" setzen, sofern "NULL" Werte real in
>> den Datensätzen existieren.
>>
>> Und die sind vorhanden: In der Tabelle sys_file_metadata habe ich 27 Datensätze, davon 9 mit fe_groups = NULL.
>>
>> In der Doku finde ich auf https://docs.typo3.org/typo3cms/FileAbstractionLayerReference/singlehtml/Index.html über das
>> Feld fe_groups:
>>
>> *******************************************************************************
>> Frontend permissions
>>
>> System extension "filemetadata" adds a "fe_groups" field to the "sys_file_metadata" table. This makes it possible to
>> attach frontend permissions to files. However these permissions are not enforced in any way by the TYPO3 CMS Core. It is
>> up to extension developers to create tools which make use of these permissions.
>>
>> As an example, you may want to take a look at extension fal_securedownload which also makes use of the "Is publicly
>> available?" property of File Storages.
>> *******************************************************************************
>>
>> Die Extension filemetadata habe ich aktiviert. Testweise mal deaktiviert und erneut aktiviert, ändert nichts an den 9
>> NULL Werten.
>>
>> Ich habe mal getestet mit folgendem SQL:
>>
>> 	SELECT distinct CONCAT("-", fe_groups, "-") FROM `sys_file_metadata`
>>
>> und erhalte da --> 2 <-- Treffer: NULL und "--".
>>
>> Bedeutet also, dass neben den 9 NULL Werten 18 "leer"-Werte in fe_groups vorkommen.
>>
>>
>>
>> Konkrete Frage, da ich keine Ahnung habe, was für Inhalte in fe_groups rein sollen/dürfen: Könnte man das Problem durch
>> einen Update der 9 Datensätze von NULL auf "" (leer) beseitigen, oder bedeutet der NULL Wert eine andere
>> Meta-Dateninformation für TYPO3?
>>
>>
>>
>> Viele Grüße,
>> Michael
>>


More information about the TYPO3-german mailing list