|
|
# Aktualisierung
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
> **:warning: Achtung:** Vor jeder Aktualisierung sollte ein Backup der aktuellen Datenbank durchgeführt werden, da einige neue Versionen automatisch Aktualisierungen an der Datenbank vornehmen. Wird die SQLite Datenbank verwendet, kann die Datenbank-Datei einfach kopiert werden oder mit Hilfe des SQLite Kommandozeilentools ein Backup als SQL-Datei erzeugt werden (`sqlite3 demo.db .dump > dump.sql`).
|
|
|
|
|
|
Es ist zu empfehlen, die Aktualisierung nicht im Ordner der Live-Version durchzuführen, um den Zugriff durch Nutzer auf einen inkonsistenten Zustand der Dateien während der Aktualisierng zu verhindern. Hierfür kann bei der Verwendung von Git beispielsweise einfach eine Kopie des gesamten Ordners durchgeführt werden (`cp -R secdoc secdoc_temp`). Anschließend kann das Update in `secdoc_temp` durchgeführt werden. Dananch können die Ordner getauscht werden (`mv secdoc secdoc_old && mv secdoc_temp secdoc`) und die alte Version kann bei Bedarf gelöscht werden. Ohne Git kann eine aktualisierte Version von SecDoc einfach in einen neuen Ordner entpackt werden und dieser dann verschoben werden. Sollte eine Aktualisierung ein Datenbank-Update durchführen, kann anschließend mit der alten SecDoc Version nicht mehr auf die Datenbank zugegriffen werden!
|
|
|
|
|
|
> **:warning: Achtung:** Nach der Aktualisierung sollte sichergestellt werden, dass das Installationsskript nicht vorhanden oder immer noch umbenannt ist!
|
|
|
|
|
|
## Wartungsmodus
|
|
|
|
|
|
Vor der Aktualisierung sollte der Wartungsmodus von SecDoc aktiviert werden. Hierzu muss in der eigenen Version der [secdoc.conf.php](https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/blob/master/assets/ajax/secdoc.conf.php#L21) die Variable `$maintenanceMode` auf `TRUE` gesetzt werden. Ist der Wartungsmodus aktiv, wird Nutzern von SecDoc ein Hinweis über die Wartung angezeigt und es sind ausschließlich lesende Zugriffe auf die Datenbank möglich.
|
|
|
|
|
|
Nach der Aktualisierung sollte der Wartungsmodus wieder ausgeschaltet werden, indem die Variable wieder auf `FALSE` gesetzt wird.
|
|
|
|
|
|
## Aktualisierung mit Git
|
|
|
|
|
|
1. Sollten lokale Änderungen an den Dateien vorgenommen worden sein, sollten diese gesichert werden:
|
|
|
```bash
|
|
|
# Ohne Commit: Änderungen in den Stash packen
|
|
|
git stash
|
|
|
|
|
|
# Mit Commit: Änderungen lokal committen
|
|
|
git commit -a -m "Lokale Änderungen"
|
|
|
```
|
|
|
|
|
|
2. Holen der Aktualisierungen aus dem GitLab Repository:
|
|
|
```bash
|
|
|
git pull origin master
|
|
|
```
|
|
|
|
|
|
3. Falls der Stash verwendet wurde, können die Anpassungen wiederhergestellt werden:
|
|
|
```bash
|
|
|
git stash pop
|
|
|
```
|
|
|
|
|
|
4. Eventuelle Konflikte beheben, wenn Dateien sowohl lokal, wie auch im Update verändert wurden. Konflikte werden beim Aufruf von `git status` angezeigt. Eine Anleitung zum Umgang mit Konflikten kann hier gefunden werdenn: [Resolving a merge conflict using the command line](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line).
|
|
|
|
|
|
5. Den temporären SecDoc Ordner an die korrekte Stelle verschieben (siehe oben).
|
|
|
|
|
|
## Aktualisierung ohne Git
|
|
|
|
|
|
1. Neue Version von SecDoc herunterladen
|
|
|
```bash
|
|
|
wget -O https://zivgitlab.uni-muenster.de/secdoc/secdoc/-/archive/v1.5.2/secdoc-v1.5.2.zip secdoc_new.zip
|
|
|
unzip secdoc_new.zip
|
|
|
```
|
|
|
|
|
|
2. Eventuelle lokale Änderunge in die neue Version übertragen. Dies kann beispielsweise mit einem Tool wie [Meld](https://meldmerge.org/) durchgeführt werden.
|
|
|
|
|
|
3. Den neuen SecDoc Ordner an die korrekte Stelle verschieben (siehe oben). |
|
|
\ No newline at end of file |