Ankündigung

Einklappen
Keine Ankündigung bisher.

"Die Datenbank sollte geupdated werden" verschwindet nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tim
    antwortet
    Bis dahin: MySQL 8

    dcaconfig oder vergleichbar:
    Code:
    $GLOBALS['TL_DCA']['MEINE-CC-TABELLE']['fields']['MEIN-FELD']['sql'] = "int unsigned NOT NULL default '0'";
    Zuletzt geändert von Tim; 09.05.2023, 10:21.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von denniserdmann Beitrag anzeigen
    Habe ich getestet, aber es ändert nichts. Ich habe zum Vergleich dann wieder das (10) entfernt und daraufhin verschwindet dann auch Zeile im Installtool.

    Zugang muss ich abklären. Ich schreibe dir dann eine Mail.
    Ja, integer ist ohne Länge definiert in Mysql8

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Habe ich getestet, aber es ändert nichts. Ich habe zum Vergleich dann wieder das (10) entfernt und daraufhin verschwindet dann auch Zeile im Installtool.

    Zugang muss ich abklären. Ich schreibe dir dann eine Mail.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    /system/config/dcaconfig.php

    Code:
    $GLOBALS['TL_DCA']['MEINE-CC-TABELLE']['fields']['MEIN-FELD']['sql'] = "int(10) unsigned NOT NULL default '0'";
    Setz das mal für deine CC-Tabelle und für die Felder. Schauen, ob Contao das intern wandelt.

    Kannst du mir nen FTP-Zugang geben? Ich finde einfach keinen Webspace mit Mysql 8, auf den ich kann.
    Zuletzt geändert von Tim; 03.05.2023, 13:59.

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Ich verstehe nicht ganz, was du meinst. Aber ich habe nochmal ein paar Tests gemacht, und dabei gesehen, dass normale DB-Änderungen anders aussehen, als die für CC. Vielleicht hilft dir das weiter:

    So sieht die Anweisung für den CC aus:

    Code:
    ALTER TABLE cc_bsptabelle CHANGE sorting `sorting` int(10) unsigned NOT NULL default '0';
    und so für tl_page:

    Code:
    ALTER TABLE tl_page CHANGE sorting sorting INT UNSIGNED DEFAULT 0 NOT NULL
    (keine Backticks)

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von denniserdmann Beitrag anzeigen
    Das ist sehr merkwürdig. Die Anweisungen scheinen identisch mit deinen zu sein, aber für die Contao Felder bekomme ich keine Hinweise, dass sie weiterhin aktualisiert werden müssen. Ich vermute, dass ich sie beim Update auf 4.13 bestimmt anpassen musste, aber danach tauchen sie nicht mehr im Installtool auf.
    Vielleicht werden die Definitionen noch einmal intern umgewandelt und angepasst. Hast du mal versucht die SQL-DCA-Felddefinitionen in die dcaconfig.php zu setzen zum Test. Die müsste Contao abwandeln.

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Das ist sehr merkwürdig. Die Anweisungen scheinen identisch mit deinen zu sein, aber für die Contao Felder bekomme ich keine Hinweise, dass sie weiterhin aktualisiert werden müssen. Ich vermute, dass ich sie beim Update auf 4.13 bestimmt anpassen musste, aber danach tauchen sie nicht mehr im Installtool auf.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Zitat von denniserdmann Beitrag anzeigen
    Wenn ich das richtig sehe, dann kommt MySQL 8 nicht mit dem int(10) zurecht. Ich habe testweise mal bei den betroffenen Feldern in der DCAHelper.php die (10) entfernt. Dadurch verschwinden die DB-Update Aufforderungen. Damit hast du zumindest einen Anhaltspunkt.

    Wie gesagt, ich denke das das Problem in allen MySQL 8 Installationen auftreten wird.
    Ja, integer sind anders unter Mysql 8. Wie setzt denn Contao selbst integer Felder unter M8 z.B. tl_page.sorting?

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Wenn ich das richtig sehe, dann kommt MySQL 8 nicht mit dem int(10) zurecht. Ich habe testweise mal bei den betroffenen Feldern in der DCAHelper.php die (10) entfernt. Dadurch verschwinden die DB-Update Aufforderungen. Damit hast du zumindest einen Anhaltspunkt.

    Wie gesagt, ich denke das das Problem in allen MySQL 8 Installationen auftreten wird.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Ich glaube Mysql 8 handelt integer Felder anders. Ich schau mal, dass ich auf einen mysql 8 server komme. Unsere Testserver sind all-inkl. Dort ist Mariadb im Einsatz.

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Das ist ein guter Hinweis.

    Mir ist gerade aufgefallen, dass es sich bei allen Feldern um Nummernfelder handelt. Die meisten legt der CC an und ich habe keinen Einfluss darauf:

    Code:
    ALTER TABLE cc_bsptabelle CHANGE pid `pid` int(10) unsigned NOT NULL default '0';
    ALTER TABLE cc_bsptabelle CHANGE tstamp `tstamp` int(10) unsigned NOT NULL default '0';
    ALTER TABLE cc_bsptabelle CHANGE sorting `sorting` int(10) unsigned NOT NULL default '0';
    Mein eigenes Feld ist genauso wie das soeben neu erstellte Feld my_sorting betroffen:

    Code:
    ALTER TABLE cc_bsptabelle CHANGE cc_sorting `cc_sorting` int(10) unsigned NOT NULL default '0';
    ALTER TABLE cc_bsptabelle CHANGE my_sorting `my_sorting` int(10) unsigned NOT NULL default '0';
    Es gibt also keinen Unterschied zwischen einem bereits erstellten Feld und einen neu hinzugefügten Feld. Sie haben beide das gleiche Problem.

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Ohne konkrete Anhaltspunkte kann ich kein Update angehen . Es gab immer mal Fälle, wo vermeintliche Feldänderungen ausgeführt werden sollten. Es waren immer Einzelfälle.

    Leg mal ein neues Feld an und schau mal in phpmyadmin in welcher Form sich das neue Feld zu den hier bestehenden unterscheidet. Event. ist es die Kollation, die sich im Laufe von Contao Hauptversionen ebenfalls oft geändert hat und durch das Install-Tool nicht geändert wird.

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Zur Not direkt in PHPmyadmin ändern
    Das habe ich bereits versucht. Aber den obigen Befehl in PHPMyAdmin zu verwenden, hat nichts geändert (was müsste ich stattdessen verwenden?). Da das Projekt mit Contao 4.9 bereits auf MySQL 8 lief, fällt es mir schwer, nun auf Version 5 zurückzugehen.

    Ich wundere mich, dass das Problem anscheinend nur bei so wenigen Personen auftritt. Ich würde eigentlich davon ausgehen, dass alle Installationen mit 4.13 in einer halbwegs aktuellen Serverumgebung betroffen sind.

    Vielleicht hast du noch eine Idee, ansonsten würde ich kurzfristig die Fehlermeldung unterdrücken und abwarten bis das Problem eurerseits mit einem Update gelöst wurde.

    Viele Grüße,
    Dennis

    Einen Kommentar schreiben:


  • Tim
    antwortet
    Von 4.9 auf 4.13 hat Contao einige Doctrine Änderungen mitgemacht in der DB. Event. Mysql auf 5 setzen. Zur Not direkt in PHPmyadmin ändern.

    Einen Kommentar schreiben:


  • denniserdmann
    antwortet
    Moin Tim,

    ich hake hier mal ein, weil ich das gleiche Problem mit den nicht verschwindenden Hinweisen habe.

    Ich habe ein Upgrade von 4.9 auf 4.13 durchgeführt und dabei auch CC/CE auf 4.5.8 aktualisiert. Den von dir erwähnten DCA-Cache in den CC Einstellungen habe ich ebenfalls deaktiviert, das ändert aber nichts. Einziger Unterschied zu kellermann: Bei mir sind die Änderungen auch im Installtool zu sehen.

    Hier ein Beispiel:

    Code:
    ALTER TABLE cc_bsptabelle CHANGE pid `pid` int(10) unsigned NOT NULL default '0';
    Zur Installation:
    • Contao 4.13.20
    • CE/CC 4.5.8
    • MySQL 8
    Kannst du das Problem nachvollziehen? Gibt es zur Not einen vorläufigen Workaround?

    Viele Grüße,
    Dennis

    Einen Kommentar schreiben:

Lädt...
X