Fehler wg. mangelhafter Rechnungsnummer

  • Warum soll ich meine richtigen Tabellen nochmals bearbeiten?

    Das kann Dir Max bestimmt besser erklären, ich würde es so sagen:


    Wenn ich Salz in einem Topf habe, und vorne Salz drauf steht, wird aus dem Salz kein Salzwasser, weil ich vorne jetzt Salzwasser drauf schreibe.
    Ich muss auch das Wasser hineinschütten. Nun passt aber nicht mehr soviel Salz in den Topf wie vorher. (Ich hoffe, dass das Beispiel stimmt, nicht dass nachher mehr Salz in den Topf passt, weil die Dichte zunimmt. Kann mir ja mal jemand erklären.)


    utf8mb3 benötigt 3 Byte pro Zeichen, utf8mb4 benötigt 4 Byte pro Zeichen.

    Wenn ich eine volle Tabellenzeile mit 16.000 Zeichen von mb3 zu mb4 konvertiere, sind da plötzlich nur noch 12.000 Zeichen erlaubt, wenn ich nichts ändere.


    Nur, weil eine Tabelle den Zeichensatz mb4 benutzt, heißt das nicht, dass der Inhalt nicht noch das mb3-Format hat oder einzelne Zeilen nicht auch im Zeichensatz mb3 sein können.


    Der Inhalt, der vorher mb3 war, muss also dem neuen Zeichensatz angepasst werden.


    Meine SQL-Kenntnisse beziehen sich nur auf Lektüre des Buchs "SQL für Dummies".

    Ist übrigens ein gut geschriebenes Buch. Damit habe selbst ich die Grundbegriffe von SQL verstanden. Aber noch genauer aufdröseln kann ich Dir die Erklärung leider nicht, dazu bin ich nicht SQL-begabt genug.


    Und jetzt drück auf den Knopf und frag nicht so viel, höre ich gerade die Horde schreien. (Im Testshop zuerst natürlich.)


    STS

  • Du hast das ziemlich gut erklärt. Also ja, mein Tool gibt auch wirklich den Befehl alles umzuwandeln. Es gab noch nie eine negative Rückmeldung über das Tool. Es ist sogar nicht extra geschützt, wie andere Tools.

    Ergebnis:


    Es ist ein Fehler aufgetreten.

    1074 Column length too big for column 'category_description' (max = 16383); use BLOB or TEXT instead

    :/

    Falls die anderen Tabellen trotzdem geändert worden sein sollten:
    Am eigentlichen Smiley-Problem hat sich nichts geändert.

  • Da bist Du jetzt genau in den Fehler gelaufen, dass nicht mehr so viele Zeichen in dieses Feld passen wie vorher.

    Du könntest manuell (PhpMyAdmin o.ä.) in der Datenbank in der Tabelle #__virtuemart_categories_de_de den Typ für category_description auf TEXT setzen.

    So wäre das in einer aktuellen Installation.


    Evtl. auch für die Tabellen in anderen Sprachen _en_gb usw.


    PS. Vielleicht macht's auch das "Installiere Tabellen oder falls notwendig aktualisiere diese" in den VM-Tools.


    STS

  • Du könntest manuell (PhpMyAdmin o.ä.) in der Datenbank in der Tabelle #__virtuemart_categories_de_de den Typ für category_description auf TEXT setzen.

    So wäre das in einer aktuellen Installation.

    Geht nicht. Eingestellt ist "mediumtext", TEXT oder varchar oder BLOB werden nicht angeboten zur Auswahl.
    Außerdem müsste jeder Datensatz einzeln bearbeitet werden.

  • Ich würde fast glauben, diese Änderungen werden normalerweise beim Update auf neuere VM-Versionen gemacht.


    Wenn das nicht der Fall ist, sollten diese Aktualisierungsskripte durch den oben genannten Button angestoßen werden.


    Aber vielleicht kann Max noch einmal etwas dazu sagen. Ich steck in dem Thema nicht wirklich drin.


    STS

  • Ganz sicher nicht. Mein Bedarf an Versuchen ist gedeckt und die Lösung des ursprünglichen Problems ist nicht in Sicht.
    Dann doch lieber Handarbeit. :/

    Doch, doch, dieser Funktion ist auch super sicher, sie wird bei update und installation ausgeführt und wir nutzen sie seit fast 10 Jahren jetzt. Es gab mal an bissal Ärger mit keys, aber nur wiel zuviele gedropped und erstellt wurden, was wiederum eigentlich nur das ist, was man zum Optimieren macht. aber ansonsten, sicher.'

    Und das ausführen von dem UTF8mb4 tool hat dir bisher garkeinen Ärger bereitet. Ich würde mal gucken, warum da so viel Text drin steht. Irgendeine Category beschreibung ist wohl sehr lang. Aber wie Stefan sagt, es sollte sowieso text sein.

  • Ich würde mal gucken, warum da so viel Text drin steht. Irgendeine Category beschreibung ist wohl sehr lang. Aber wie Stefan sagt, es sollte sowieso text sein.

    Alles ausprobiert. Sogar lange Texte gelöscht. Der Fehler bleibt:
    "1074 Column length too big for column 'category_description' (max = 16383); use BLOB or TEXT instead"

    Letzte Idee, wenn auch seltsam. Ich habe teilweise Bilder drin: "<p><img src="images/ticker-sauce.png" alt=""></p>"
    :/

  • Ich würde fast glauben, diese Änderungen werden normalerweise beim Update auf neuere VM-Versionen gemacht.

    Wenn das nicht der Fall ist, sollten diese Aktualisierungsskripte durch den oben genannten Button angestoßen werden.

    Hallo Stefan,


    ich habe heute etwas Zeit gehabt, dieses in einer alten VM-Version (4.4.0) zu testen. Tatsächlich werden die DB-Tabellen nicht durch ein Update auf eine höhere VM-Version automatisch auf UTF8mb4 umgestellt.

    Dieses geschieht nur durch das drücken auf das besagte Tool von Max. Danach ein paar sekunden Angst.....,8| aber danach ist alles umgeschrieben.:)