Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler bei Aktualisierung Datenbank

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

  • Fehler bei Aktualisierung Datenbank

    Moin Tim,

    ich habe in einem CC Katalog (aktuelle Version) ein Feld vom Typ "Seitenwähler" dahingehend geändert, dass ich Mehrfachauswahl aktiviert habe. Das erforderliche Datenbank-Update läuft dann allerdings schief:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 2020-06-25 16_49_30-Contao Open Source CMS.png
Ansichten: 98
Größe: 20,1 KB
ID: 19445

    Könnte es sein, dass hier versucht wird, fälschlicherweise eine Collation auf einem BLOB Datentyp zu erzwingen?
    Vielleicht kannst Du mal schauen ob das generell zu ist oder nur bei mir schief läuft?
    Danke Dir und VG

  • #2
    Mehrfachauswahlen sind blobs.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Ja, das ist klar. Die Fehlermeldung kommt nicht wegen Blob sondern weil versucht wird, dem Blob Datentyp eine Collation aufzuzwingen. Meine Datenbank meckert. Bin jetzt nicht der DB-Pabst aber machen Zuordnungen von Collations zu binären Datentypen überhaupt Sinn?

      Kommentar


      • #4
        Ich denke das Change bezieht sich nicht auf die Kollation, sondern auf den Feldtyp.
        Ein Seitenwähler ohne Mehrfachauswahl legt ein integer (int(10)) Feld an. Mehrfachauswahlen werden blobs.

        Die Kollation wird durch die Systemeinstellung festgelegt: \Contao\Config::get('dbCollation') Falls diese Abweicht, wird das Installtool ein Change wollen. Ich sehe daran nichts fälschliches.

        blob selbst ist nicht binär, nur dafür konzipiert. Contao setzt das quasi überall ein, wo mehrere Werte (Arrays) gespeichert werden.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Ja, blob ist ja auch super. Aber die Datenbankänderung wird nicht durchgeführt. Habe eben gedacht ich trickse Contao aus und ändere die Tabelle in der DB manuell ... geht nicht, weil ich da die Collation aus dem angezeigten Change nicht zuweisen kann (die anderen Blob-Felder haben auch keine Collation zugewiesen - was für mich sinnvoll erscheint).

          Noch mal die Anforderung:
          - Ich habe (für CC) ein Inhaltselement angelegt und u.a. das Attribut "Seitenbaum/Seitenwähler" hinzugefügt (keine Mehrfachauswahl).
          - Ich habe die CC Konfiguration erstellt und alles sieht soweit gut aus.
          - Ich möchte in der Konfiguration eine Datei aufnehmen und sie mit Tags versehen. UND ich möchte mitgeben, auf welchen Seiten diese Datei verwendet wird (um da später mit einem Filter leichter die Relevanten Dateien einzuzeigen).
          - Nun merke ich, dass eine Datei auch auf mehreren Seiten verwendet werden könnte und ändere die Definition des CC Attributs "Seitenbaum/Seitenwähler" auf "Mehrfachauswahl".
          - CC erkennt die notwendige Datenbankänderung und bietet mir an die Änderung gleich im Backend anzuschubsen ... Passiert gar nix ...
          - Also alle Caches geleert die überhaut irgendwo sein können (Sicherheitshalber auch auf allen Nachbar-Sites ). Keine Änderung.
          - Also direkt den Installer aufgerufen. -> Dort kommt dann das Bild von oben. Wenn ich dort auf aktualisieren gehe ... Peng, Contao Fehler (.. Es ist ein Fehler aufgetreten) ...
          - Hier der Auszug der Aktion aus dem Log:
          Code:
          [2020-06-26 11:51:48] app.CRITICAL: An exception occurred. {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tbl_cc_downloadobjekte CHANGE produktzuordnung `produktzuordnung` blob NULL COLLATE utf8_general_ci;':\n\nSQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'binary' at /var/www/clients/client21/web149/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:106, Doctrine\\DBAL\\Driver\\PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'binary' at /var/www/clients/client21/web149/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:83, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'binary' at /var/www/clients/client21/web149/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:78)"} []
          Die Fehlermeldung deckt sich mit der, die ich auch bekommen habe, wenn ich es manuell direkt in der DB machen wollte.

          Hmm, ist das nur bei mir so </heul>?

          Kommentar


          • #6

            COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'binary'
            Puhh... da bin ich etwas überfragt. Meine blobs hier fahren keine Kollation. Prüfe mal die Hosting-Einstellungen.
            Hier ist ähnliche Meldung in einem Issue. https://github.com/contao/contao/issues/1117
            Dort sind es die Hosting-Einstellungen.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Ne, eben, die sollen ja auch keine Kollation haben. Aber das Change will aus irgendeinem Grund (bei mir) eins machen. Das zitierte Issue trifft bei mir nicht zu aber ich habe es jetzt so lösen können, dass ich das komplette Attribut mal rausgeschmissen habe und das Feld dann auch entfernen haben lassen und dann habe ich es neu hinzugefügt, diesmal gleich mit der Mehrfachauswahl. So geht es wieder problemlos.

              Kommentar

              Lädt...
              X