Update/Upgrade

Anleitungen zum Durchführen von Updates und damit verbundenen Tätigkeiten.

Update auf Linux

Um Squeeze auf einem Linux System upzudaten kann wie folgt vorgegangen werden:

Datenbanksicherung durchführen

# Alle Datenbanken
mysqldump --user=root -p --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --all-databases --result-file="/var/www/html/2021-01-01_all_databases.bak"

# Eine bestimmte Datenbank
mysqldump --user=root -p --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events "databasename" --result-file="/var/www/html/2021-01-01_databasename.bak"

Cronjobs stoppen

# Liste der Cronjobs öffnen
crontab -e -u www-data

# z.B. folgenden cronjob mit einen vorangestellten # deaktivieren
#*/5 * * * * php /var/www/html/Squeeze/jobs/EmailProcessing.php client.server.net

Services stoppen

systemctl stop squeeze-worker@1.timer
systemctl stop squeeze-worker@1.service 
systemctl stop rabbitmq-server.service 
systemctl stop elasticsearch.service 
systemctl stop mariadb.service 
systemctl stop apache2.service

Ab Version 1.10.0 Repository verschieben

Ab der Version 1.10.0 muss das Repository verschoben werden. Wenn eine Version kleiner 1.10.0 ein Update erhalten soll, kann das Repository mit folgendem Befehl verschoben werden:

mv /var/www/html/Squeeze/repository/ /var/www/html/
mkdir /var/www/html/repository/config
mkdir /var/www/html/repository/config/clients

mv /var/www/html/Squeeze/config/server.json /var/www/html/repository/config/server.json
mv /var/www/html/Squeeze/config/server.installed /var/www/html/repository/config/server.installed
mv /var/www/html/Squeeze/config/clients/*.json /var/www/html/repository/config/clients/
mv /var/www/html/Squeeze/config/clients/*.installed /var/www/html/repository/config/clients/

Die *.json Konfigurationsdateien müssen editiert werden, da das Repository der Mandanten verschoben wurde.

Backup der aktuellen Squeeze Version

Um eventuell wieder auf die letzte aktive Version zurückzukommen muss der aktuelle Stand gesichert werden.

cd /var/www/html
tar cfvz "$(date '+%Y-%m-%d')_Squeeze.tar.gz" Squeeze/

Update per git fetch und pull

# enter the Squeeze directory
cd /var/www/html/Squeeze

# ggf. git clone 
git clone https://langer@dev.azure.com/DEXPRO/DEXPRO%20Platform/_git/SQUEEZE .

# fetch the available branches
git fetch

# pull the branch (hard reset)
git reset --hard origin/develop_or_another_branch

Worker Konfiguration übernehmen

Rechte aktualisieren

cd /var/www/html
chown -R www-data Squeeze/
chmod -R 755 Squeeze/

Services starten

systemctl start mariadb.service 
systemctl start apache2.service
systemctl start rabbitmq-server.service 
systemctl start elasticsearch.service
systemctl start squeeze-worker@1.timer
systemctl start squeeze-worker@1.service 

System Migration per API ausführen

Die Datenbank Migrationen müssen noch manuell über die API geprüft bzw. ausgeführt werden. http://client.server.net/api/migrationStatus

Update auf Windows

Diese Seite dokumentiert, wie Updates von Squeeze auf Windows durchzuführen sind.

Die Update-Schritte sind i. d. R. gleich, je nach Produktversion können allerdings einzelne Sonder-Tätigkeiten wie z. B. das aktivieren einer PHP-Extension notwendig sein.

Grundsätzliches Vorgehen

1. Update des htdocs Ordners

Der htdocs enthält den Programmcode von Squeeze und stellt i. d. R. die einzige zu aktualisierende Komponente dar.

image-1658235368553.png

Schritte
  1. Datenbankbackup erstellen!
  2. SQUEEZE Dienste beenden
  3. htdocs Verzeichnis sichern
  4. neues htdocs Verzeichnis im SQUEEZE Verzeichnis entpacken
  5. Im htdocs\Worker-Verzeichnis muss die umzug.json enthalten sein, sie muss aus dem gesicherten htdocs Verzeichnis kopiert werden.
  6. Ggf. sicherstellen ob Jobs aus dem alten htdocs\jobs Verzeichnis in das neue htdocs\jobs Verzeichnis kopiert werden müssen.
  7. SQUEEZE Dienste wieder starten
  8. Datenbankmigration über die Web-Oberfläche ausführen:

    image-1658235122650.png

Zur Durchführung einer Datenbankmigration muss unter dem Reiter Migrationen das Symbol "Migration Ausführen" angeklickt werden.

image-1650887454008.png

Tragen Sie nun den Mandantennamen in das angegebene Feld ein und klicken Sie auf "Speichern" um die Migration auszuführen.

image-1650887530401.png

Nun kann über den Reiter "System" die aktuelle Version des Systems angezeigt werden. 

image-1658235236599.png

image-1641982910834.png

2. Update von anderen Komponenten

Die folgenden Schritte sind nicht bei jedem Update notwendig. Sie müssen nur beachtet werden, falls eine der vermerkten Versionen zum Einsatz kommt und die notwendigen Voraussetzen nicht erfüllt sind.

PHP Extension - sodium (ab Squeeze Version 2.3.0)

Ab Squeeze 2.3.0 wird die PHP Extension Sodium benötigt.

Die Datei kann unter  \Squeeze\php\php.ini gefunden werden. In der Datei nach "Sodium" suchen und in der entsprechenden Zeile das Semikolon entfernen:

image-1671027876113.png

Auf manchen Windows Systemen reicht es nicht aus die sodium Extension hinzuzufügen. In diesem Fall muss zusätzlich das PHP Verzeichnis z.B. D:\SQUEEZE\php in die PATH Umgebungsvariable aufgenommen werden. 

Anschließend muss der Webserver einmal neu gestartet werden.

OpCache deaktivieren (jede Squeeze Version)
  1. opcache für CLI Prozesse deaktivieren (opcache.enable_cli=0 in der php.ini)
Chromium (ab Squeeze Version 1.7.0)

Ab Squeeze 1.7.0 wird Chromium für das PDF-Rendering von E-Mails verwendet. [Download]

Der Inhalt des Downloads muss in den Ordner htdocs\lib\chromium kopiert werden. Hierbei handelt es sich um eine "google-freie" Version von Chromium in der Version 111.0.5563.71. Die Funktionalität wurde mit dieser Chromium-Version getestet und nur in dieser Version kann eine fehlerfreie Ausführung gewährleistet werden.

Ab Squeeze 2.4.0: Wenn Chromium erfolgreich eingebunden ist, kann dies in der in der Systemprüfung unter dem Punkt "CLI Services - Health Checks for availability" eingesehen werden. Ansonsten wird hier ein Fehler angezeigt.

image-1678891393061.png

 

Datenbankmigration nach Update

Migration eines einzelnes Mandanten via UI

Zur Durchführung einer Datenbankmigration muss unter dem Reiter Migrationen das Symbol "Migration Ausführen" angeklickt werden.

image-1650887454008.png

 

Tragen Sie nun den Mandantennamen in das angegebene Feld ein und klicken Sie auf "Speichern" um die Migration auszuführen.

image-1650887530401.png

Migration aller Mandanten via CLI

Im Squeeze-Ordner (htdocs unter Windows) befindet sich ein Ordner cli mit Skripten für die Administration. Hier kann das PHP-Skript migrate-tenant.php ausgeführt werden um einen einzelnen Mandanten zu aktualisieren.

Mit dem Skript migrate-server.php werden alle Kommandozeilenbefehle gelistete, die benötigt sind, um alle Mandanten eines Servers zu aktualisieren.

Beispiele

php migrate-tenant.php mein-mandant.local.intern führt die Migrationen für einene Mandanten aus.

php migrate-server.php listet alle Befehle auf, die alle installierten Mandanten migrieren würden.

(Linux) php migrate-server.php | bash migriert sequentiell alle Mandanten.

Suchindex nach Update reindizieren

Reindizierung einer einzelnen Dokumentenklasse

Um den Suchindex einer einzelnen Dokumentenklasse wiederzuerstellen, kann dieser Button genutzt werden:

image-1660716212811.png

Aktuell Q2 2023 ist diese Funktion noch synchron. D. h., dass bei einer Dokumentenklasse mit vielen Dokumenten eine lange Wartezeit entsteht und der User, der diesen Knopf drückt, entsprechend lang warten muss.

Migration via CLI / Konsole

Ab Squeeze 2.5

Mit dem Squeezer CLI ist die Indizierung eines einzelnen Mandanten mittels tenant:reindex und des gesamten Servers mittels server:reindex möglich.

# Hilfe für Mandanten-Reindizierung anzeigen:
./squeezer tenant:reindex --help

Description:
  Reindex documents of all document classes

Usage:
  tenant:reindex <tenant>

Arguments:
  tenant                Tenant identifier (host / domain) of the tenant to run the command for.

Options:
  -h, --help            Display help for the given command. When no command is given display help for the list command
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi|--no-ansi  Force (or disable --no-ansi) ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Vor Squeeze 2.5

Im Squeeze-Ordner (htdocs unter Windows) befindet sich ein Ordner cli mit Skripten für die Administration. Hier kann das PHP-Skript reindex-tenant.php ausgeführt werden um alle Dokumentenklassen eines einzelnen Mandanten zu aktualisieren.

Mit dem Skript reindex-server.php werden alle Kommandozeilenbefehle gelistete, die benötigt sind, um dies für alle Mandanten eines Servers durchzuführen.

Diese Migrationsskripte reindizieren Dokumente aller Dokumentenklassen.

Beispiele

php reindex-tenant.php mein-mandant.local.intern reindiziert einen Mandanten.

php reindex-server.php listet alle Befehle auf, die alle installierten Mandanten reindizieren würden.

(Linux) php reindex-server.php | bash reindiziert sequentiell alle Mandanten.

PHP Update unter Windows

Aktuell wird von Squeeze nur die PHP Version 7.4.x unterstützt. Da in regelmäßigen Abständen neue Hotfixes für PHP erscheinen wird hier der Updateprozess beschrieben. 

Aktuell prüfen wir die Umstellung auf die php Version 8.1.x. Im Moment sind die Versionen 8.x.x jedoch noch nicht freigegeben.

Was ist zu tun?

  1. Herunterladen der aktuellen PHP Version aus unserem Forum (Anmeldung erforderlich)

  2. Stoppen der Dienste 01_SQUEEZE_WebServer und 05_SQUEEZE_Worker

  3. Backup des aktuellen PHP Verzeichnisses
    C:\SQUEEZE\php verschieben nach C:\SQUEEZE\backup\php

  4. Entpacken der heruntergeladenen Zip-Datei in das Squeeze Basisverzeichnis

    image-1674517672847.png



  5. Squeeze Basisverzeichnis auswählen
    image

  6. Anschließend die php.ini aus dem Ursprungsverzeichnis in das neue Verzeichnis kopieren
    C:\SQUEEZE\backup\php\php.ini kopieren nach C:\SQUEEZE\php\php.ini

  7. Dienst 01_SQUEEZE_WebServer starten

  8. In SQUEEZE anmelden und unter System Prüfung die PHP Version kontrollieren

    image-1671459520643.png

  9. Dienst 05_SQUEEZE_Worker starten

 

Apache Update unter Windows

Aktuell wird von Squeeze nur die Apache/2.4.x unterstützt. Da in regelmäßigen Abständen neue Hotfixes für Apache erscheinen wird hier der Updateprozess beschrieben. 

Was ist zu tun?

  1. Herunterladen der aktuellen Apache Version aus unserem Forum (Anmeldung erforderlich)

  2. Stoppen der Dienste 01_SQUEEZE_WebServer und 05_SQUEEZE_Worker

  3. Backup der aktuellen Version für einen eventuellen Rollback z.B. C:\SQUEEZE\apache verschieben nach C:\SQUEEZE\backup\apache

  4. Entpacken der Zip-Datei in das Squeeze Basisverzeichnis (z.B. C:\Squeeze\)

    image-1674517464004.png



  5. Squeeze Basisverzeichnis auswählen
    image

  6. Anschließend den Ordner conf aus dem Ursprungsverzeichnis in das neue Verzeichnis kopieren
    C:\SQUEEZE\backup\apache\conf kopieren nach C:\SQUEEZE\apache\conf

  7. Eventuell konfigurierte SSL Zertifikate müssen ebenfalls übernommen werden.
    In der Regel liegen diese Zertifikate unter D:\SQUEEZE\apache\conf\ssl* und werden daher schon durch den vorherigen Schritt berücksichtigt.

  8. Dienst 01_SQUEEZE_WebServer starten