Ergebnis 1 bis 10 von 10

Thema: DB Update, ein Eintrag wird nicht aktualisiert (Fullcalendar)

  1. #1
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard DB Update, ein Eintrag wird nicht aktualisiert (Fullcalendar)

    Hallöchen,

    ich habe heute eine Installation von 4.4 auf die 4.13 gebracht. Das hat soweit alles gut geklappt.
    Beim Datenbank Update bleibt allerdings immer folgender Eintrag bestehen:
    Code:
     ALTER TABLE tl_calendar CHANGE fullcal_alias fullcal_alias VARCHAR(128) CHARACTER SET utf8 DEFAULT '' NOT NULL COLLATE `utf8_bin`
    Nach dem ausführen wird auch ein grünes Häkchen gesetzt … nach dem Klick auf weiter steht der Eintrag wieder bereit zum ausführen… jetzt mehrfach probiert, keine Änderung. Das kommt wohl vom fullcalendar, der im Front und backend aber trotzdem funktioniert.

    Die Installation läuft jetzt unter php 8.0.26 (vorher 7.3.3), die Datenbank war unter 4.4 MySQL 5.7 und ist jetzt MariaDB 10.

    Wie gesagt, es läuft alles… hat dafür jemand eine Idee? Manuell irgendwas verstellen in der Datenbank?

    Danke vorab und viele Grüße
    Thomas
    blucomp | Webdesign & Onlinelösungen

  2. #2
    Contao-Fan Avatar von w3scout
    Registriert seit
    20.06.2009.
    Ort
    Stuttgart
    Beiträge
    273
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Welche Version des Fullcalendar (und MariaDB 10) hast Du denn im Einsatz?
    Und erlaube mir die Frage: wieso nicht gleich PHP 8.1? Der Support für 8.0 endet dieses Jahr im November.

    Hier (C 4.13.24, PHP 8.1, MariaDB 10.3.38, FullCal 5.1.4) tritt das Problem nicht auf.

  3. #3
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Danke für den Hinweis. Es gibt keinen besonderen Grund, ich hab jetzt mal auf 8.1 gestellt und ein composer update gemacht. Das oben beschriebene bleibt.
    Allerdings hab ich durch dich gemerkt, das die Erweiterung noch auf einem alten Stand bleibt (2.2) und... einige andere Erweiterungen auch nicht auf den eigentlichen aktuellen Stand gehoben werden unter den Bedingungen Contao 4.13.24, PHP 8.1

    Ich sehe zu anderen composer.json eigentlich keine großen Unterschiede... muss ich die Versionen manuell anheben? Also beim fullcalender z.B auf ^5.1?

    Meine composer.json (jetzt die richtige, hatte falsch kopiert):
    Code:
    {
        "type": "project",
        "require": {
            "bugbuster/contao-visitors-bundle": "^1.0",
            "codefog/contao-mobile_menu": "^2.7",
            "contao/calendar-bundle": "4.13.*",
            "contao/comments-bundle": "4.13.*",
            "contao/conflicts": "*@dev",
            "contao/faq-bundle": "4.13.*",
            "contao/listing-bundle": "4.13.*",
            "contao/manager-bundle": "4.13.*",
            "contao/news-bundle": "4.13.*",
            "contao/newsletter-bundle": "4.13.*",
            "fritzmg/contao-swiper": "^3.3",
            "hofff/contao-calendarfield": "^3.0",
            "hypergalaktisch/contao-parallax": "^2.0",
            "inspiredminds/contao-wowjs": "^1.0",
            "jrgregory/m17-sticky-backend-footer": "^2.0",
            "madeyourday/contao-rocksolid-columns": "^2.0",
            "madeyourday/contao-rocksolid-slider": "^2.0",
            "martin-kozianka/contao-fullcalendar": "^2.0",
            "netzmacht/contao-font-awesome-inserttag": "^2.0",
            "netzmacht/contao-leaflet-geocode-widget": "^1.3",
            "netzmacht/contao-leaflet-maps": "^3.1",
            "sioweb/linkedelement": "^0.8.8",
            "terminal42/contao-ajaxform": "^1.1",
            "terminal42/notification_center": "^1.5"
        },
        "extra": {
            "public-dir": "web",
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "@php vendor/bin/contao-setup"
            ],
            "post-update-cmd": [
                "@php vendor/bin/contao-setup"
            ]
        }
    }
    Ist daran irgendwas zu sehen?
    Geändert von tblumrich (28.05.2023 um 11:19 Uhr)
    blucomp | Webdesign & Onlinelösungen

  4. #4
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Hallo nochmal,

    also ich hab jetzt mal die Versionen manuelle angehoben und die Pakete aktualisiert, den Fullcalender dabei auf 5.1.4. Das hat gepklappt.
    Das o.g. Problem bleibt leider mit einem zusätzlichen Eintrag... die Datenbankaktualisierung dreht sich bei dem einen Einrag im Kreis (grünes Häkchen und dann wieder zum Aktualisieren). Dazu gekommen ist ein weiterer Eintrag wo ein rotes Kreuz bleibt:
    Code:
    Feld tl_calendar.fullcal_alias ändern
    
    VARCHAR(128) CHARACTER SET utf8 DEFAULT '' NOT NULL COLLATE `utf8_bin`
    ALTER TABLE tl_calendar CHANGE fullcal_alias fullcal_alias VARCHAR(128) CHARACTER SET utf8 DEFAULT '' NOT NULL COLLATE `utf8_bin`
    Feld tl_module.fullcal_weekNumbers ändern
    
    CHAR(1) DEFAULT '' NOT NULL
    ALTER TABLE tl_module CHANGE fullcal_weekNumbers fullcal_weekNumbers CHAR(1) DEFAULT '' NOT NULL
    Screenshot:
    Screenshot.png

    Wenn ich versuche über das Installtool das update zu machen erwartet kommt ein Fehler, der im Log wie folgt aussieht.

    Code:
    [2023-05-30T11:48:06.511925+02:00] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing a query: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'fullcal_weekNumbers' at row 1" at /homepages/2/d21625548/htdocs/2023/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php line 117 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 1406): An exception occurred while executing a query: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'fullcal_weekNumbers' at row 1 at /homepages/2/d21625548/htdocs/2023/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php:117)\n[previous exception] [object] (Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 1406): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'fullcal_weekNumbers' at row 1 at /homepages/2/d21625548/htdocs/2023/vendor/doctrine/dbal/src/Driver/PDO/Exception.php:28)\n[previous exception] [object] (PDOException(code: 22001): SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'fullcal_weekNumbers' at row 1 at /homepages/2/d21625548/htdocs/2023/vendor/doctrine/dbal/src/Driver/PDO/Connection.php:32)"} []
    Wie gesagt, alles funktioniert im Front- und Backend. Any ideas?
    blucomp | Webdesign & Onlinelösungen

  5. #5
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der DB Tabelle "tl_module" wird der Datentyp der Spalte "fullcal_weekNumbers" in CHAR(1) geändert. Das geht aber nicht, weil da noch Strings drin stehen, die länger als 1 Zeichen sind. Am besten die Daten in der Spalte mal löschen und dann sollte das Update auch klappen.

  6. #6
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Dankeschön,
    ich hab mal geguckt in mein PMA... ich soll ja sicher nicht die Spalte ansich löschen, sondern nur dien Inhalt...? Aber wie mach ich das?

    Screenshot.png
    blucomp | Webdesign & Onlinelösungen

  7. #7
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Entweder nach der Spalte sortieren und die einzelnen Reihen wo was drin steht bearbeiten .... oder aber löschen: macht in dem Fall ja nix, weil die Spalte dann neu angelegt wird.

    Danach definitv die zugehörigen Module im Contao Backend einmal öffnen und neui speichern.

  8. #8
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Ok, prima, das hat jetzt funktioniert... Dankeschön! Das andere Problem bleibt leider.

    Code:
    Feld tl_calendar.fullcal_alias ändern
    
    VARCHAR(128) CHARACTER SET utf8 DEFAULT '' NOT NULL COLLATE `utf8_bin`
    ALTER TABLE tl_calendar CHANGE fullcal_alias fullcal_alias VARCHAR(128) CHARACTER SET utf8 DEFAULT '' NOT NULL COLLATE `utf8_bin`
    Spalte in DB
    Screenshot.png

    Inhalt der Spalte
    Screenshot2.png

    Ist auch die einzige Spalte weit und breit, die auf utf8mb3_bin steht und nicht auf utf8mb4_unicode_ci. Hab auch schon versucht diese manuell umzustellen. Der Manager möchte aber weiterhin den o.g. Vorgang durchführen. Starte ich diesen steht die Spalte wieder auf utf8mb3_bin und der Rest der Schleife bleibt...
    blucomp | Webdesign & Onlinelösungen

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Hintergrund des Problems ist, dass es in den neuesten MariaDB und MySQL Versionen "utf8" nicht mehr gibt, sondern nur mehr utf8mb3 und utf8mb4. "utf8_bin" wird aber weiterhin vom Datenbankserver verstanden, intern wird das dann automatisch auf "utf8mb3_bin" gemapped. Der Datenbankserver meldet dann auch korrekterweise an die Applikation zurück, dass das Feld nun "utf8mb3_bin" ist. Beim Vergleich mit dem was im DCA verlangt wird, wird das dann allerdings als Unterschied erkannt.

    Entweder ignorierst du das - oder lässt das in der Extension beheben. Idealerweise sollte die Extension die Doctrine Array Notation für die sql Definition verwenden. Siehe https://docs.contao.org/dev/referenc...umn-definition

    Oder man ändert es bspw. auf
    Code:
    varchar(128) BINARY NOT NULL default ''
    wenn es so sein soll wie bei den Aliasen von Contao (bin mir nicht sicher wie man das mit der Array Notation schreiben würde).
    » sponsor me via GitHub or PayPal or Revolut

  10. #10
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Vielen Dank für die Aufklärung.
    Da ich das ehrlicherweise nur teilweise verstehe, tendiere ich einfach mal zum Ignorieren.

    LG Thomas
    blucomp | Webdesign & Onlinelösungen

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •