Fehler bei tblContent Änderung im Update von 8.1.6 auf 9.1.6

  • Guten Tag zusammen,

    wir haben ein komplexeres Projekt von 8.1.1 auf 8.1.6 und schließlich auf 9.1.6 geupdatet.

    Beim Update von 8.1.6 auf 9.1.6 ist ein Fehler aufgetreten als die Struktur der Datenbanktabelle tblContent geändert werden sollten.
    Eine Update-Wiederholung hat daran nichts geändert.

    Ein Problem war, dass der Spalte DocumentTable die enum-Option tblTemporaryDoc gefehlt hat. Das habe ich händisch angepasst und das Update erneut wiederholt. Allerdings wieder ohne Erfolg.

    Im Update-Protokoll steht folgender Fehler:
    (tblContent.sql) Einige Datenbankanfragen konnten nicht durchgeführt werden.: 1062 Duplicate+entry+%27tblFile-32161-%5CxEDO%5CxDF%5Cx0FE%5CxBF%5CxC68P%5D%5Cx01%5CxB5q%5CxCA%5CxBC%5CxA9%27+for+key+%27prim%27 -- ALTER TABLE `tblContent` MODIFY `nHash` binary(16) AS (unhex(md5(`Name`))) PERSISTENT AFTER `Dat` --

    Es scheint als hätte er ein Problem damit die nHash Spalte zu ändern, weil die Einträge dann nicht mehr eindeutig wären.

    Hat jemand eine Idee wie wir das Problem lösen können?


    Viele Grüße

    Oliver

  • Mit folgender Abfrage konnte ich mir die Duplikate anzeigen.

    SQL
    SELECT 
      DocumentTable,
      DID,
      MD5(Name) AS md5_hex,
      COUNT(*) AS cnt,
      GROUP_CONCAT(ID ORDER BY ID) AS IDs
    FROM tblContent
    GROUP BY DocumentTable, DID, md5_hex
    HAVING cnt > 1
    ORDER BY DocumentTable, DID

    Das sind 106 doppelte Einträge (=212) und sieht dann so aus:


    Ich würde jetzt hingehen und die Einträge mit der höheren ID behalten (da aktueller) und die mit der kleineren ID entfernen (da älter).

    Oder spricht da etwas dagegen?

    Wie kann sowas überhaupt passieren?

  • Ich habe mir einzelne Einträge angeschaut.
    Die, die ich mir stichprobenartig angeschaut habe, hatten immer identischen Inhalt.

    Mit folgender Abfrage habe ich dann alle Duplikate einer Duplikatgruppe gelöscht - außer die mit der höchsten ID (da aktuellster Eintrag).

    Bei einer Wiederholung des Updates gab es bei der Datenbank-Aktualisierung keine Probleme mehr. Allerdings hängt sich der Update-Prozess bei "Patche ausführen" bei 95% auf und kommt nicht weiter..


    Das Update-Protokoll zeigt keine Fehler an, allerdings findet sich im Fehlerprotokoll folgender Eintrag:

    Error type:
    Code
    Exception
    Error message:
    Code
    Undefined constant "WE_SITE_PATH"
    Script name:
    Code
    SECURITY_REPL_DOC_ROOT/webEdition/we/classes/update/we_update_updater.class.php
    Line number:
    Code
    686

    Hat jemand zu dem neuen Problem eine Idee?

  • Die Aktualisierungen hast du mit PHP 8.1.33 durchgeführt? In den Systemvoraussetzungen steht: Wichtig: Updates bis zur letzten 9.1.x müssen zwingend unter PHP 7.4 ausgeführt werden!

    Kann es daran liegen? Ich hatte bei einer alten WE7 auch Probleme beim Aktualisieren und erst ein runterschalten der PHP Version hatte geholfen.

  • Haben die Umgebung neu aufgesetzt und die Update-Schritte mit den korrekten PHP-Versionen ausgeführt.
    Das Datenbankproblem bestand weiterhin, konnte aber mit den o.g. Fixes behoben werden.

    Der Fehler Undefined constant "WE_SITE_PATH" trat nicht mehr auf.

    Danke euch!

  • hast du danach eine Updatewiederhlung gemacht, damit auch der DB Index gesetzt werden konnte? Wir verlassen uns da schon auf das Unique der DB.


    Warum es früher zu dem Fehler kam, weshalb Inhalte Doppelt angelegt wurden, kann man schwer beantworten.... Danach sollte es wenigstens (hoffentlich) unmöglich sein.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!