Updates

Ab der Version 3 mit DB-Version 40 und höher können Updates per Skript automatisch ausgeführt werden.

Warnung

Vor allen Updates sollte immer ein aktueller Dump der Datenbank durchgeführt werden, um Datenverluste zu vermeiden.

Wichtig

Vorbereitung und Systemvorraussetzungen

Zur Ausführung der Datenbankupdates benötigt der Account (i.d.R. User gris) entsprechende Berechtigungen. Insbesondere CREATE und ALTER müssen ihm erlaubt sein.

Beispiel (User ggfs. anpassen):

-- Alle Rechte entfernen
REVOKE ALL PRIVILEGES ON *.* FROM 'gris'@'%';
REVOKE GRANT OPTION ON *.* FROM 'gris'@'%';
-- Rechte neu setzen
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, ALTER, LOCK TABLES, SHOW VIEW ON *.* TO 'gris'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Außerdem sind vor dem Update drei Änderungen in der Datei gris_init_settings.php (falls vorhanden) nötig. Die Werte der jeweiligen Settings spielen dabei keine Rolle und sollten nicht verändert werden. Wichtig ist nur der Zusatz , true.

// Roles that can be assigned multiple times
$init_settings->set_setting("organigram", "multiple_roles", "Mitarbeiter|Co-Abteillungsleitung|Co-Teamleitung", true);
// Default order for resourcetype groups separated by pipe (e. g. Publikation|Lehre|Vortrag|Gutachten|Sonstiges)
$init_settings->set_setting("resource", "default_type_order", "", true);
// Database version (according to the tag numbers in sql/gris_model_history.sql)
$init_settings->set_setting("database", "version", "40", true);

Um die Settings automatisch aktualisieren zu können, muss curl installiert sein:

apt update
apt install curl

Schritte des Update-Skripts

  • git pull (nur beim ersten automatischen Update nötig, danach übernimmt das Skript die Aktualisierung des Codes)

  • DB aktualisieren, falls neue DB-Updates vorhanden (Version wird am Ende höher gesetzt)

  • Settings neu laden

  • Sprachtabellen neu erzeugen

Updateskript aufrufen:

cd /var/www/gris

-- Pull ist nur bei der ersten Ausführung des Skripts nötig
git pull

-- Update ausführen
./update.sh

Alternativ kann das Skript auch per Cron-Job automatisiert ausgeführt werden. Dabei sollte jedoch der oben angesprochene Dump ebenfalls vorher ausgeführt werden.

Troubleshooting

Sollten während des Updates Fehler auftreten, können diese meist in folgende Kategorien eingeteilt werden:

Fehlende Datei-Berechtigungen

Hat die Datei Ausführungsrechte?

Fehlende Datenbank-Berechtigungen

Der User gris (bzw. der in den Settings eingetragene User) muss die oben beschriebenen Rechte für den lokalen Zugriff besitzen.

Synchronisierungsfehler mit dem GIT-Repository

Falls Dateien aus dem Repository lokal geändert wurden, ist ein Abgleich nicht direkt möglich. Um den Update dennoch durchführen zu können, sollte ein Stash durchgeführt werden:

cd /var/www/gris

-- Stash um lokale Daten zwischenzuspeichern
git stash