cgoIT / contao-calendar-ical-bundle

Contao extension calendar_ical
Other
0 stars 4 forks source link

Field 'ical_title' doesn't have a default value #42

Closed pointout closed 7 months ago

pointout commented 7 months ago

To Reproduce Steps to reproduce the behavior:

  1. Go to 'Backend'
  2. Click on 'Seitenstruktur'
  3. Neue Seite anlegen
  4. See error

or

  1. Go to 'Backend'
  2. Click on 'Artikel'
  3. Artikel bearbeiten und neues Inhalstslement anlegen
  4. See error

Expected behavior Neue Seite sollte anlegbar sein. Stattdessen Fehlermeldung: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1364 Field 'ical_title' doesn't have a default value

Logs Uncaught PHP Exception Doctrine\DBAL\Exception\NotNullConstraintViolationException: "An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1364 Field 'ical_title' doesn't have a default value" at /var/www/vhosts/hostingXXX.netcup.net/httpdocs/domain/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php line 114

Configuration (please complete the following information):

config.yml:

  dbal:
    connections:
      default:
        options:
          1002: "SET SESSION sql_mode=(SELECT CONCAT(@@sql_mode, ',TRADITIONAL'))"
pointout commented 7 months ago

Ich habe in der DCA config alle Textfelder in tl_page und tl_content und das Template select Feld in tl_content auf 'sql' => "text NULL", gesetzt. Dann funktionierts.

cgoIT commented 7 months ago

Hi @pointout, ich kann weder den Fehler bei den Seiten, noch bei den Inhaltselementen bei mir nachstellen. Zumal im DCA (zumindest im SQL-Teil) durchaus Defaults definiert sind. Siehe z.B. hier und hier.

Kommst du an die vollständige Exception ran und könntest die hier bitte mal posten? Danke!

pointout commented 7 months ago

Hallo @cgoIT, ich poste spätestens morgen. Ich habe gesehen, dass defaults definiert sind, die habe ich auf text NULL geändert, dann hat es funktioniert. Mir ist auch aufgefallen, dass auch in den Core Bundels die Textfelder alle mit text NULL definiert sind.

pointout commented 7 months ago

Ich update gerade auf 5.2.4. Im Manager steht bei den Datenbankänderungen kein Defaultwert. Vielleicht liegt da das Problem: grafik

pointout commented 7 months ago

Der Manager ändert die DB Struktur nicht, weil ich sie angepasst hatte. Ich habe sie manuell in phpMyAdmin wieder geändert. Wenn man den Haken bei "NULL" entfernt, steht bei "Standard" kein(e). Das lässt sich auch nicht auf '' ändern. Das hat auch so nach den ersten DB Änderungen durch dein Plugin so ausgesehen. grafik

cgoIT commented 7 months ago

Ich bin mir nicht so ganz sicher, was du genau mit deiner Umgebung gemacht hast. Frische Installation, Erweiterung installiert und in der tl_page sieht bei mir das Feld folgendermaßen aus:

image

Vielleicht würde es helfen, wenn du mal eine neue Testinstallation aufsetzt und dann schaust, ob dort die gleichen Probleme bei dir auftreten.

pointout commented 7 months ago

Ich habe jetzt am selben Server eine komplett neue und leere 4.13 Installation und nur das "contao-calendar-ical-bundle" dazu installiert. Bei der Datenbakänderung im Manager bei der Installation: grafik Auch hier kein Default bei TEXT NOT NULL.

Beim Anlegen einer Seite: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1364 Field 'ical_prefix' doesn't have a default value

Vielleicht hängt es von der DB/Version ab. Der Hoster verwendet Server-Version: 8.0.33 - MySQL Community Server - GPL.

https://de.contaowiki.org/Korrekte_database.sql_erzeugen ist zwar schon alt, aber in dem Statement Beispiel steht: `text_null_demo` text NULL, Und auch in den core bundles ist ein Textfeld immer mit text NULL. Was spricht dagegen es im Plugin zu ändern (auch im SELECT Feld)?

cgoIT commented 7 months ago

Hi, es scheint tatsächlich an der MySQL zu liegen (MariaDB scheint da an der Stelle anders zu ticken). Es gibt seit 2008 einen Feature-Request für Default Werte bei text Spalten. ich habe jetzt mal eine Version gemacht in der die Spalten NULLable sind und die entsprechenden Anpassungen im Code gemacht, um mit Null-Werte umgehen zu können. Hoffentlich funktioniert es jetzt.

pointout commented 7 months ago

Danke! Die Erzeugung der ical Inhaltselemente hat auch schon ohne weiterer Codeänderungen funktioniert gehabt. Ich update und teste sobald die neue Version da ist. BTW: Danke für die Erweiterung! Sie ist sher hilfreich Termine nicht mehrfach führen zu müssen.

cgoIT commented 7 months ago

Hi,

ist schon da: https://github.com/cgoIT/contao-calendar-ical-bundle/releases/tag/v5.2.5

pointout commented 7 months ago

Nochmals Danke. Installation lief ohne DB Änderungen durch, die ich ja schon manuell gemacht hatte und ical Inhalteselemente funktionieren. Keine Fehlermeldung beim Anlegen von Inhaltselementen.

cgoIT commented 7 months ago

Danke für die Rückmeldung. Dann mache ich hier mal zu.