-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.0.0 Fehlerhafte defaults-Werte in Table-Manager-Tabelle bei Textfeldern (führen zu Problemen) #1215
Comments
Verwandtes Issue: yakamara/ydeploy#39 |
Okay, danke für die ganzen Infos! |
Ja, wobei somit yform am besten auch gar nicht erst versuchen sollte, für TEXT-Spalten Default-Werte zu setzen. |
Ja, klar, ich gehe davon aus, dass yform entsprechend gefixt wird. |
Ja. Wobei mir aktuell keine weiteren problematischen Fälle bekannt sind. |
Bei uns traten die Probleme erst mit dem Update auf 4.0.0 auf. |
Was mir eben sofort ins Auge gesprungen ist, ist, dass escapte Anführungszeichen als Wert verwendet werden. Also als ob irgendwo in einer Methode statt Ein leerer String wäre ja auch ebenfalls korrekt. Nur eben nicht |
MariaDB liefert bei TEXT-Columns so die Default-Values. Also mit zusätzlichen Anführungszeichen. Warum das so ist, weiß ich gerade nicht (mehr). Ich bin mir gerade nicht ganz sicher, meine aber, dass innerhalb von MariaDB das so auch dann wieder funktioniert, wenn der Default-Wert so gesetzt wird. Bloß in Kombination mit MySQL funktioniert es so nicht. MySQL unterstützt allgemein keine Default-Values für TEXT-Columns, wirft aber anscheinend nur Fehler bei diesen komischen Values aus MariaDB mit zusätzlichen Anführungszeichen. So ganz genau weiß ich es nicht mehr alles. Aber im Metainfo-Fall konnten wir es halt lösen, indem wir gar nicht mehr versuchen, Default-Values für TEXT-Columns zu setzen, da MySQL sie halt sowieso nicht unterstützt. |
Das kommt mir spanisch vor. Dann müsste man das ja schon bei dem Abfrage-Ergebnis an MariaDB für sich zu einem leeren String oder null abwandeln und schon wäre das Problem gelöst, oder? |
MariaDB liefert die Anführungszeichen, weil auch andere Expressions möglich sind als Default-Value, wie |
Erläuterung: MariaDB ist in der Lage, defaults-Werte zu speichern für Felder. Diese werden über den Table Manager in
rex_yform_field
definiert, hier am Beispiel der Tabellerex_ycom_user
.Standardmäßig ist der default-Wert für Textfelder leer und nicht nullable.
Beim Update der Felder werden vom Table Manager dann fälschlicherweise statt einem leeren String Anführungszeichen
''
eingetragen.gelb: So, wie YForm standardmäßig Felder einträgt.
rote Häkchen: So, wie ich das Problem aktuell umgehe mit
NULL
gelb: Das, was YForm als default-Wert einträgt und zu Problemen führt.
Das führt aktuell bei einem Projekt mit @tyrant88 am Ende zu Problemen bei YDeploy, wenn lokal mit MariaDB und live mit MySQL gearbeitet wird, das scheinbar nicht in der Lage ist, die default-Werte zu verwenden.
Standard-Wert sollte
NULL
sein oder gar nicht gesetzt werden (kein(e)
) damit 1. der default überhaupt Wert korrekt ist (leer, nicht die Zeichen''
), 2. das einem nicht um die Ohren fliegt, wenn man einen DBMS-Wechsel hat.The text was updated successfully, but these errors were encountered: