Upgrade von 3.10.8 auf 4.1.2 failed - DB / CMS Version

  • Hi,

    meine Seite läuft Seit 2017 unter Joomla 3 Versionen. Und nachdem ich nun jeden Tag nen E-mail bekam auf 4 zu gehen hab ich das dummerweise gemacht. Natürlich mit Backup.

    Natürlich ist die Installation trotz deaktivieren von gewissen Plugin fehlgeschlagen.

    • Backup inkl. DB wieder eingespielt.
    • Frontend geht wieder
    • Backend bringt in den Menüitems z.B. Call to a member function order() on null oder Class 'JFormFieldList' not found
    • DB reparieren im Backend führt dazu das im Frontend ebenfalls Fehler kommen.

    Unreparierte DB:

    unreparierte_DB.txt

    Reparierte DB:

    Code
    Die Datenbankschemaversion (3.10.7-2022-03-18) passt nicht zur CMS-Version (4.1.1-2022-02-20)

    reparierte_DB.txt


    Ich wäre froh um einen Lösungsvorschlag.


    Ich kann über den Hoster via Plesk einfach das Backup wiederherstellen, daher hab ich bereits ein bißchen rumprobiert und es mehrfach wieder hergestellt. Der Fehler bleibt gleich.

    Soll ich Folders aus Joomla_3.10.8-Stable-Full_Package rüberkopieren oder versuchen neu zu installieren?


    FG

  • Das Backup hast du wohl nicht korrekt wieder eingespielt. Vermute dass du die bereits vorhandene DB einfach überschrieben hast.

    Lösche vor dem Backup die vorhandene Datenbank und leere das genutzte Verzeichnis komplett.

    Danach bitte das Backup wieder einspielen.

    Ich gehe davon aus, dass du das Backup mit Akeeba erzeugt hast?

  • Da Backup wurde vom Webhoster gemacht. Dort habe ich ausgewählt die Datenbank wiederherzustellen und die Website wieder herzustellen.

    Akeeba habe ich aus Platzgründen vom Webspace deinistalliert vor 2 Jahren.


    Da dransteht das die CMS Version auf 4.1.1 ist wäre es gut wenn man diese downgraden könnte. Schließlich will ich ja die 3.10 er DB verwenden mit Joomla 3.10


    Ist eine Lösungsmöglichkeit die Core Dateien neu zu installieren?

  • Nun mal ehrlich, wie kann man eine der wichtigsten Erweiterungen (Backupsysteme) in Joomla aus Platzgründen deinstallieren?


    Wende dich an deinen Hoster und kläre die Fehlersituation mit Ihm.

    Er wird bestimmt noch weitere Sicherungen haben, die eventuell verwendbar sind.


    Wenn ein serverseitiges Backup von VZ und DB korrekt gemacht wurde, gibt es dabei die von dir beschriebenen Probleme nicht (es sei denn, dass deine zurückgespielte Sicherung bereits fehlerhaft war).

  • Du musst darauf achten, dass das Backup von Webspace und zugehöriger Datenbank wirklich das gleiche Datum haben, also zur gleichen Zeit gesichert wurden. Ansonsten passt das nicht wirklich zusammen.
    Ich lese da von 3.10.7, 3.10.8, 4.1.1 und 4.1.2.


    Sowohl den Webspace der Webseite als auch die Datenbank-Tabellen sollte man vorher löschen. Hast du in der DB die DB-Tabellen von mehreren Joomla, dann achte unbedingt darauf, dass du nur die Tabellen mit dem richtigen Präfix löschst, damit du dir keine anderen Installationen kaputt machst.


    Tipp: Wenn du AkeebaBackup aus Platzgründen deinstalliert hast, dann hast du definitiv nicht das richtige Hosterpaket. Und mit einer AkeebaBackup-Sicherung hast du definitiv ein Archiv, welches Dateien & DB-Tabellen enthält, die zur gleichen Zeit gesichert wurden und somit auch zusammenpassen. Dann hättest du die Probleme nun nicht.


    Achte auch darauf, dass sich die techn. Voraussetzungen für J4 geändert haben: https://downloads.joomla.org/technical-requirements


    Ich würde die letzte laufende Jooma 3.10.x-Version einspielen oder einspielen lassen, dann ruhig erst auf 3.10.8 aktualisieren, dann die Vorbereitungen für die Migration treffen (auch ein funktionstüchtiges Backup anlegen!) und anschließend migrieren!


    Hinweis: Es müssen ev. nicht nur Plugins deaktiviert werden, es kann auch sein, dass ganze Komponenten bzw. Templates/Frameworks deinstalliert werden müssen, weil sie nicht zu J4 kompatibel sind. Bei älteren Erweiterungen kann es auch sein, dass man nicht einmal einen Hinweis erhält, ob die Erweiterung kompatibel ist. Deshalb wirklich alle einzeln durchgehen und überprüfen!

    Übrigens AkeebaBackup 8 kannst du in J4 zunächst übernehmen. In J4 dann einfach die Version 9 parallel installieren und starten. Die Einstellunge werden übernommen. Anschließend Version 8 deinstallieren.

  • Und nachdem ich nun jeden Tag nen E-mail bekam auf 4 zu gehen hab ich das dummerweise gemacht.

    Joomla 3 wird noch bis 08/2023 supportet. Es besteht also noch kein Gerund auf Joomla 4 zu migrieren.


    Ich würde erstmal die Tipps hier durcharbeiten und das letzte Backup der 3er-Version wieder einspielen.

  • Vielen Dank für die zahlreichen Antworten!

    Ich habe es nun geschafft die DB korrekt wieder herzustellen und somit das Problem hoffentlich gelöst.


    Code
        Version des Datenbankschemas (in #__schemas): 3.10.7-2022-03-18
        Aktualisierungsversion (in #__extensions): 3.10.8
        Datenbanktreiber: mysqli
        190 Datenbankänderungen wurden überprüft.
        218 Datenbankänderungen hatten keinen Einfluss auf die Struktur der Datenbanktabellen und wurden deshalb übersprungen.

    Die Joomla Version 3.10.8 passt nun auch wieder zur DB.


    Leider hab ich noch keine Lösung gefunden umd die Fehler im Admin Backend zu beseitigen beim Aufrufen vieler Menüitems:

    • Class 'JFormFieldPredefinedList' not found
    • Call to a member function order() on null
    • Class 'JFormFieldList' not found
    • Class 'JFormFieldGroupedList' not found

    Wenn man eine Adminseite aufruft kriegt man dann einen "HTTP/2 500 Internal Server Error "


    Ich hab jetzt noch den Update Server wieder auf Standard zurückgedreht und die Core-Dateien neu installiert.


    Bringts was einzelne Folder einzeln via FTP zu kopieren aus "Joomla_3.10.8-Stable-Full_Package".?

  • Hast du mal darüber nachgedacht, dein Backup local zu installieren und das Update zu testen?

    Das Backup vom Hoster könnte ich natürlich auch mal lokal probieren zu kopieren. Aber wie gesagt ich hab kein Akeeba Backup. Ich müsste mir erstmal eine Umgebung bauen die der vom Hoster entspricht. Ich denke aber das hier dann das gleiche Problem ist.


    Laut der Fehlermeldung können Klassen nicht gefunden werden. Also hab ich zuerst die Libraries neu rüberkopiert.


    Hat noch jemand eine Idee wie man die Fehler beheben kann im Adminbereich?

    Gibts ne Möglichkeit den Adminbereich neu zu installieren?

    Oder nen anderes Admintemplate installieren um das zu fixen (installieren geht noch)?

    • Class 'JFormFieldPredefinedList' not found
    • Call to a member function order() on null
    • Class 'JFormFieldList' not found
    • Class 'JFormFieldGroupedList' not found

    FG

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von MM-P mit diesem Beitrag zusammengefügt.

  • Aber wie gesagt ich hab kein Akeeba Backup.

    Verstehe ich immer nicht.


    M.E. muss man 2-3 mal klicken als Bestätigung, dass man ein Backup angefertigt hat, bevor man ein Update auslöst.


    Wird einfach duchgeklickt, upgedatet in dann funktioniert die Seite nicht.


    Jetzt ein Backup einspielen ..................




    Dennoch könntest du mal den Debug-Modus starten:


  • Ich denke die "kein Akeeba Backup" Diskussion führt zu nix.

    Ich habs gerne benutzt, bis sich meine Website während dem Backup aufgehängt hat und mein Speicher vollgelaufen ist. Ja natürlich hätte ich sonst ein Akeeba backup.


    Den Debugger kann ich natürlich nicht über das Admin Backend in der GUI aktivieren, da auch die Konfigurationsseite nicht erreichbar ist.


    Ich hab nun etwas analysiert im Webbrowser und geb mal ein paar Beispiele was ned passt

    Code
    GET /administrator/index.php?option=com_config HTTP/1.1
    Host: www.___.com

    --> Error 500 (im administrator folder sind alle com_xyz vorhanden)


    Wenn man auf seine Beiträge geht kommt noch ein bootstrap Fehler der wieder auf Error 500 geht.


    Danke für die konstruktive Unterstützung.

  • Ich habe folgendes gesetzt:

    Code
    public $debug = '1';
    public $error_reporting = 'maximum';

    Er bleibt bei fast allen in der media/jui/js --> jquery.js hängen bei:

    Code
    div.querySelectorAll("*,:x");
    SyntaxError: Element.querySelectorAll: '*,:x' is not a valid selector
    
    matches.call( div, "[s!='']:x" ); -> SyntaxError: Element.matches: '[s!='']:x' is not a valid selector

    Im Joomla Log unter /homepage/administrator/logs ist nix interessantes drin.

  • Wenn mich nicht alles täuscht, gibt es in J4 die jquery Bibliothek nicht mehr.

    Schau in J4 Neuinstallation, was da liegt und schieb das per ftp auf den Webspace. Alte Dateien sicherheitshalber umbenennen und noch nicht löschen.

  • Schau in J4 Neuinstallation, was da liegt und schieb das per ftp auf den Webspace.

    Um Gottes Willen! Nicht noch mehr Kuddelmuddel machen!

    Man muss jetzt auf einem gescheiten Backup zurückgreifen und versuchen die Seite zu retten. Was kriegst du vom Hoster als Backup? Hast du schon versucht das Backup lokal oder in einem Subdomain (in einer frischen Datenbank) zu installieren?

  • Wenn mich nicht alles täuscht, gibt es in J4 die jquery Bibliothek nicht mehr.

    Schau in J4 Neuinstallation, was da liegt und schieb das per ftp auf den Webspace. Alte Dateien sicherheitshalber umbenennen und noch nicht löschen.

    Ich hab aber eine Joomla 3.10.8 installation. Und auch die DB dahin wieder gefixed.


    Ich hab mir alle Dateien runtergeladen vor dem Upgrade auf 4.


    Wenn es keine Reparaturmöglichkeit gibt werde ich wohl eine neue Seite bauen müssen. Davor werde ich jetzt noch den Hoster um Hilfe bitten und mich in die Warteschleife begeben.

  • Zurück geht nur mit vernünftigen Backup.

    Ich hatte verstanden, das dein J4 Backend nicht geht.

    Andersherum nur Backup zurück und neuer Versuch. Am besten erst in Testumgebung.

    Subdomain eigener Ordner im Webspace und eigene DB. Sollte jedes Paket hergeben.