Migrationsleitfaden von Xentral 20.x

  • Anleitung zum Umzug einer Xentral 20.x Instanz auf OpenXE

    Variante 1: Installation auf dem selben Server

    Annahmen:

    • Xentral ist installiert in /var/www/html
    • Mysql root-Zugang vorhanden

    Die Originalinstallation sowie die Originaldatenbank bleiben erhalten, sodass gegebenfalls wieder zurück gewechselt werden kann. Trotzdem empfiehlt sich vorher ein komplettes Serverbackup inkl. Datenbank.

    Vorbereitung

    • Ordner /var/www/html komplett in einen Backup-Ordner kopieren
    • Ordner /var/www/html/userdata verschieben, z.B. nach /var/www
    • Ordner /var/www/html leeren

    Cronjob deaktivieren

    Code
    sudo crontab -e -u www-data

    In Crontab entsprechende Zeile mit '#' auskommentieren:

    Code
    #* * * * * php /var/www/html/cronjobs/starter2.php

    Datenbank anlegen für Xentral-Kopie sowie für die initiale openXE-Installation

    Code
    mysql -u root -p

    Datenbank testen

    Code
    mysql -u openxe -p

    OpenXE installieren

    Siehe hier, als Datenbank 'openxe_install' auswählen.


    Wenn die Installation erfolgreich war, hier fortfahren.

    Userdata migrieren

    /var/www/html/userdata löschen


    Xentral-20-userdata von /var/www/userdata verschieben nach /var/www/html/userdata (siehe oben)

    Xentral 20-Datenbank in die neue Datenbank 'openxe' kopieren

    Kopie durchführen:

    Code
    mysqldump -u root -p'mysqlrootpasswordhere' xentral | mysql openxe -u openxe -p'enteryourpasswordhere'

    OpenXE-Installation auf die kopierte Datenbank umschalten

    In der Datei 'conf/userdata.inc.php' die oben erstellte Datenbank eintragen:

    PHP
    <?php
    $this->WFdbhost='localhost';
    $this->WFdbname='openxe';
    $this->WFdbuser='openxe';
    $this->WFdbpass='enteryourpasswordhere';
    $this->WFuserdata='/var/www/html/userdata';
    ?>

    Inbetriebnahme

    Login in OpenXE mit den Xentral 20-Zugangsdaten. Tests durchführen, wenn alles funktioniert danach Cronjob wieder aktivieren.

    Cronjob aktivieren

    Code
    sudo crontab -e -u www-data

    In Crontab in entsprechender Zeile Kommentierung mit '#' wieder entfernen

    Code
    * * * * * php /var/www/html/cronjobs/starter2.php
  • Hallo Alex,

    ich habe ein xentral oss 20.1 . Mit welchen Versionen wurde das getestet? Bei mir kam es zu nach dem Upgrade zu Fehlern, wenn ich Änderungen am Benutzer machen wollten. Also Passwort setzen oder Admin Rechte geben. Dabei habe ich von der besagten xentral oss auf die aktuelle openxe geupdatet.


    MfG

    Steffen

  • Hallo Alex,

    da ich schon ein neues OpenXe aufgesetzt hatte, habe ich versucht den Fehler zu reproduzieren.

    Ich habe einfach vom xentral 20.1 die Daten aus der user.inc.php genommen und in meiner OpenXE Demo eingepflegt.

    Anmelden funktioniert. Kundendaten kann ich einsehen. Sobald ich aber Änderungen vornehmen will (anlegen eines Angebotes getestet und ändern von User Einstellungen (Password und Rolle von Benutzer auf Admin)), da bekomme ich Fehler.

    Auswahl_11 zeigt den Fehler in den User Einstellungen.

    Auswahl_12 und 13 beim Anlegen eines Angebotes.


    An sich nicht kritisch, da es eine Demoinstanz ist und ich erst die Migration teste für einen Kollegen. Aber ich würde gern verstehen, was falsch gelaufen ist.

    MfG

    Steffen

  • Ja, da fehlen Spalten in der Datenbank. Das wäre eine schöne Gelegenheit, unser Database_compare tool zu testen.


    Ich habe das gerade auf github aktualisiert, bitte aktualisiere dein System mit git pull. Das Tool liegt dann unter tools/database_compare inkl. der JSON-Datei für den aktuellen Datenbankstand.


    Du musst in der database_compare.php noch deine Anmeldedaten für die Datenbank eintragen und dann erstmal für die Übersicht aufrufen mit:

    Code
    php database_compare.php -c

    Alle Abweichungen anzeigen geht mit:

    Code
    php database_compare.php -c -v

    Dann kann man sich SQL-Codes erzeugen lassen die die Datenbank upgraden mit:

    Code
    php database_compare.php -upgrade -v

    Die SQL-Zeilen kann man dann im MySQL client oder phpmyadmin ausführen um die Datenbank anzupassen. Danach wieder mit -c durchtesten.


    -> Probiert doch mal aus und poste die Ergebnisse hier, bzw. lade doch mal die JSON-Datei hier hoch. (Enthält nur die Datenbank-Struktur)

  • Hallo Alex,


    da ich kein Programmierer bin, wo müsste das SET SQL genau in der database_compare.php hin?

    Grundsätzlich scheint es aber zu funktionieren. Ich habe die den Output umgeleitet in eine Datei. Ich hoffe, das hilft weiter?
    Upgrade macht er wohl ohne Fehler.


    Ich habe mal testweise ein Angebot erstellt. Dabei bekomme ich einen Fehler. Da ioncube gelb markiert wurde, benötigt openxe es anscheinend, wenn ich die xentral DB nehme. Das kann ich aber auf meinen Webspace nicht zur Verfügung stellen.

    Ein ähnlicher Fehler tritt auch auf, wenn ich die Berechtigungen der Nutzer von Benutzer auf Admin ändere.


    Mfg

    Steffen

  • Hallo Steffen,


    ich habe jetzt database_compare soweit dass ein Upgrade von OSS 20.1 auf OpenXE erfolgreich durchgeführt wurde.


    Vorher konnte ich auch weder Benutzer noch Angebote speichern, nach dem Upgrade funktioniert das.


    Bitte nochmal mit git pull den letzten Stand holen. Dann die Zugangsdaten in connection_info.json ändern und Folgendes durchführen (Achtung, es schreibt in die Datenbank):


    "sudo php database_compare.php -upgrade -do"


    Das läuft eine ganze Weile und sollte dann so aussehen:

  • Hallo Alex,


    ich habe meine Installation händisch aktualisiert da ich mit git pull nicht zurecht gekommen bin ;)

    Vielleicht kannst Du mal die einzelnen Befehle aufschreiben.


    Bei mit bleiben die Unterschiede auch nach der Ausführung noch bestehen.

    Die Datenbank ist under MariaDB 10.3 auf einem Synology NAS.



    Gruß

    Marco

  • Hallo Alex,


    ich habe gestern Abend die upgrade.php laufen lassen. Danach konnte ich noch weiterarbeiten.

    Seit heute früh bekomme ich aber einen htaccess Fehler.



    Die .htaccess im www Verzeichnis hat aber den gleichen Inhalt wie auf github.


    # Generated file from class.acl.php

    # Disable directory browsing

    Options -Indexes

    # Deny access to all *.php

    Order deny,allow

    Allow from all

    <FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js)$">

    Order Allow,Deny

    Allow from all

    </FilesMatch>

    # Allow access to index.php

    <Files index.php>

    Order Allow,Deny

    Allow from all

    </Files>

    # end



    Gruß

    Marco

  • Upgrade über die Konsole ist momentan bevorzugt zu verwenden.


    Die Super-Berechtigung benötigt dein Datenbank-Benutzer um die Views anzupassen, ist also im Prinzip kein Fehler. Du kannst auch im Ordner data/connection.json einen anderen Benutzer eintragen und dann mit -connection das update starten.


    Wegen der Anzeige der Version stimmen evtl. Deine Ordnerberechtigungen nicht, alles muss www-data gehören und auf 755 stehen.


    Wenn Du das Upgrade in der Konsole startest steht die Revison auch dran.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!