ContaoMonitoring / monitoring

Contao Extension: Provides a monitoring system for the Contao CMS.
https://contaomonitoring.gitbook.io/contaomonitoring
GNU Lesser General Public License v3.0
4 stars 2 forks source link

"Neuer Monitoring Eintrag" -> SQL Exception #18

Closed LinkingYou closed 6 years ago

LinkingYou commented 7 years ago

Hi,

bei einer frischen Installation (Contao 4.4.0 und ContaoMonitoring/monitoring 1.8.1) kann kein neuer Monitoring Eintrag erstellt werden. Beim klick auf "+" erscheint:

An exception occurred while executing 'INSERT INTO tl_monitoring (last_test_date, last_test_status, last_test_response_time, tstamp) VALUES ('', 'UNTESTED', '0', 0)': SQLSTATE[HY000]: General error: 1364 Field 'url' doesn't have a default value

Gruß Franky

cliffparnitzky commented 7 years ago

hmmm, kann ich nicht nachstellen. Bitte mal mehr Infos aus dem error.log zur Verfügung stellen.

LinkingYou commented 7 years ago

Im error.log steht das gleiche:

[2017-06-28 12:06:54] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"http://127.0.0.1:8000/contao?act=create&do=monitoring&ref=bVNwTuil&rt=ooxI4ssL9RL4_Cuf8p12WYc0R0XgTyJc1m3BC-dOySg","method":"GET"} []
[2017-06-28 12:06:54] security.INFO: Attempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
[2017-06-28 12:06:54] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"http://127.0.0.1:8000/contao?act=create&do=monitoring&ref=bVNwTuil&rt=ooxI4ssL9RL4_Cuf8p12WYc0R0XgTyJc1m3BC-dOySg","method":"GET"} []
[2017-06-28 12:06:54] security.INFO: Attempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
[2017-06-28 12:06:54] app.CRITICAL: An exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'INSERT INTO tl_monitoring (last_test_date, last_test_status, last_test_response_time, tstamp) VALUES ('', 'UNTESTED', '0', 0)':\n\nSQLSTATE[HY000]: General error: 1364 Field 'url' doesn't have a default value at /Users/franky/PhpstormProjects/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:115, Doctrine\\DBAL\\Driver\\PDOException(code: HY000): SQLSTATE[HY000]: General error: 1364 Field 'url' doesn't have a default value at /Users/franky/PhpstormProjects/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:106, PDOException(code: HY000): SQLSTATE[HY000]: General error: 1364 Field 'url' doesn't have a default value at /Users/franky/PhpstormProjects/contao4/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:104)"}

Beim "+" will der ja sofort einen Eintrag machen in die "tl_monitoring". Und das Feld "url" ist ein NOT NULL Feld, wir aber nicht befüllt ...

cliffparnitzky commented 7 years ago

Mit "+" ist "Neuer Monitoring Eintrag" gemeint ???

Kann in meinem Contao 4.4 unproblematisch neu anlegen bzw. duplizieren.

Contao ist via Manager installiert.

LinkingYou commented 7 years ago

Ja - genau so wollte ich das anlegen.

Es gab wohl schon mal so ein Problem mit dem "Strict mode" von MySQL ( https://contao.org/de/faq/fatal-error-field-xxx-doesnt-have-a-default-value.html ). Evtl. hängt es damit zusammen ...

cliffparnitzky commented 7 years ago

Aha, danke für die Info ... dann forsche mal in die Richtung.

Ich nach das Ticket zu.

LinkingYou commented 7 years ago

Auf dem MySQL-Server habe ich mir mit select @@sql_mode mal die aktuellen Einstellungen dazu ausgeben lassen (ist ein Standard MySql von OS X - in der my.cnf keine weiteren Einstellungen):

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Damit es auch unter diesen "Bedingungen" ohne Probleme läuft, wäre evtl. als Feature-Request ein default => '' für die Felder "url" und "test_string" in der DCA eine schöne Sache.

cliffparnitzky commented 7 years ago

Okay. Kannst du dafür einen PR machen, denn ich kann es ja nicht testen

cliffparnitzky commented 6 years ago

Generell handelt es sich hierbei wohl um ein Problem bzgl. "NOT NULL" Definitionen ohne Default Wert. Diese müssen generell überarbeitet werden.

Betrifft: