Benutzer-Werkzeuge

Webseiten-Werkzeuge


fn2:aktualisierung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
fn2:aktualisierung [2021/04/29 14:07] – [(SQL-)Skripte zur Aktualisierung der Datenbankstrukturen] christophfn2:aktualisierung [2024/03/04 14:54] (aktuell) – [(SQL-)Skripte zur Aktualisierung der Datenbankstrukturen] christoph
Zeile 36: Zeile 36:
 Sowohl für fn2Module als auch für die Komponenten von fn2Web gibt es SQL-Skripte. Diese **müssen** eingespielt werden.  Sowohl für fn2Module als auch für die Komponenten von fn2Web gibt es SQL-Skripte. Diese **müssen** eingespielt werden. 
  
-Dateien mit den Skripten für die vier verschiedenen Datenbanken finden sich auf dem ftp-Server. Bitte suchen Sie selbst die passende Variante heraus. Achten Sie darauf, dass Sie Skripte lückenlos einspielen. Dabei hilft die eindeutige Skript-Nummer. Achten Sie auch darauf, jedes Skript mit "commit;" abzuschließen, sofern kein  Autocommit eingestellt ist. Sollte ein Skript eine längere Laufzeit haben, brechen Sie es **nicht** ab, auch wenn damit "nur" ein Default-Wert gesetzt wird. +Dateien mit den Skripten für die zwei von uns unterstützten Datenbanken (Oracle DB und PostgreSQL) finden sich auf dem ftp-Server. Bitte suchen Sie selbst die passende Variante heraus. Achten Sie darauf, dass Sie Skripte lückenlos einspielen. Dabei hilft die eindeutige Skript-Nummer. Achten Sie auch darauf, jedes Skript mit "commit;" abzuschließen, sofern kein  Autocommit eingestellt ist. Sollte ein Skript eine längere Laufzeit haben, brechen Sie es **nicht** ab, auch wenn damit "nur" ein Default-Wert gesetzt wird. 
  
 Es kann vorkommen, dass Sie selbst Werte im Skript eintragen oder ergänzen müssen. Beachten Sie dazu die Hinweise in den Kommentaren.  Es kann vorkommen, dass Sie selbst Werte im Skript eintragen oder ergänzen müssen. Beachten Sie dazu die Hinweise in den Kommentaren. 
Zeile 60: Zeile 60:
 Der wesentlich elegantere und ganzheitlichere Weg fn2Web zu beziehen ist ein lokales git-Repository mit dem fn2webapps-Repository auf dem GitLab-Server zu verknüpfen. Der wesentlich elegantere und ganzheitlichere Weg fn2Web zu beziehen ist ein lokales git-Repository mit dem fn2webapps-Repository auf dem GitLab-Server zu verknüpfen.
  
-Im Folgenden werden die jeweiligen Konsolen-Befehle benutzt. Es gibt zahlreiche grafische Tools für git, die im Grunde alle das gleiche können, da sie auf eben exakt jene Befehle zurückgreifen. Auf einzelene Tools ein zu gehen würde den Rahmen dieses Wiki-Eintrages sprengen.+Im Folgenden werden die jeweiligen Konsolen-Befehle benutzt. Es gibt zahlreiche grafische Tools für git, die im Grunde alle das gleiche können, da sie auf eben exakt jene Befehle zurückgreifen. Hier auf einzelne Tools ein zu gehen würde den Rahmen dieses Wiki-Eintrages sprengen.
  
 **Ersteinrichtung**\\  **Ersteinrichtung**\\ 
Zeile 67: Zeile 67:
 erstellt einen Ordner .git/ im aktuellen Verszeichnis (für fn2Web-Zwecke sollte dieses Verzeichnis leer sein) in dem sich die Verwaltungsdateien für das Repository befinden. erstellt einen Ordner .git/ im aktuellen Verszeichnis (für fn2Web-Zwecke sollte dieses Verzeichnis leer sein) in dem sich die Verwaltungsdateien für das Repository befinden.
  
-Verknüpfen des Repositries mit dem fn2webapps-Repository über eine Remote:+Verknüpfen des Repositories mit dem fn2webapps-Repository über eine Remote:
   git remote add fn2web https://gitlab.ihb-eg.de/fn2/fn2webapps.git   git remote add fn2web https://gitlab.ihb-eg.de/fn2/fn2webapps.git
 erstellt eine Remote mit dem Namen "fn2web" und verknüpft diese mit dem fn2webapps-Repository. erstellt eine Remote mit dem Namen "fn2web" und verknüpft diese mit dem fn2webapps-Repository.
Zeile 75: Zeile 75:
  
   git checkout -b 2.04.06 fn2web/2.04.06   git checkout -b 2.04.06 fn2web/2.04.06
-erstellt einen neuen lokalen Branch "2.04.06", verknüpft diesen mit dem Branch 2.04.06 im fn2webapps-Repository und checkt ihn aus, d.h. es werden die tatsächlichen Dateien, wie sie im Branch hinterlegt sind, erstellt. Die ersteinrichtung ist damit abgeschlossen.+erstellt einen neuen lokalen Branch "2.04.06", verknüpft diesen mit dem Branch 2.04.06 im fn2webapps-Repository und checkt ihn aus, d.h. es werden die tatsächlichen Dateien, wie sie im Branch hinterlegt sind, erstellt. Die Ersteinrichtung ist damit abgeschlossen.
  
 Mit Mit
   git log   git log
 kann überprüft werden, auf welchem Stand sich der Branch befindet (genauer gesagt können so die Commits des Branches betrachtet werden). kann überprüft werden, auf welchem Stand sich der Branch befindet (genauer gesagt können so die Commits des Branches betrachtet werden).
- 
-  git remote add -f -t 2.04.06 -m 2.04.06 fn2web https://gitlab.ihb-eg.de/fn2/fn2webapps.git 
-fasst die 'git remote', 'git fetch' und 'git checkout' Befehle wie sie hier beschrieben wurden zusammen. 
  
 **Aktualisierung**\\  **Aktualisierung**\\ 
Zeile 90: Zeile 87:
 Soll auf ein neues Release aktualisiert werden, ist dieses im fn2webapps-Repository als ein eigener Branch vorhanden (Branch "2.04.05" ist Release 5, Branch "2.04.06" ist Release 6, etc.). Es muss lediglich ein  Soll auf ein neues Release aktualisiert werden, ist dieses im fn2webapps-Repository als ein eigener Branch vorhanden (Branch "2.04.05" ist Release 5, Branch "2.04.06" ist Release 6, etc.). Es muss lediglich ein 
   git fetch   git fetch
-ausgeführt werden, damit das lokale Repository vom neuen Branch auf der Remote weiß und anschließend ein +ausgeführt werden, um das lokale Repository mit der remote abzugleichen und anschließend ein 
   git checkout -b [neuer Branch] fn2web/[Release]   git checkout -b [neuer Branch] fn2web/[Release]
 gemacht werden um den neuen Branch lokal an zu legen. Falls der Name des gewünschten Branches mit einem '#' beginnt, muss er in Anführungszeichen gesetzt werden. gemacht werden um den neuen Branch lokal an zu legen. Falls der Name des gewünschten Branches mit einem '#' beginnt, muss er in Anführungszeichen gesetzt werden.
 +
 +Danach müssen nur noch die aktualisierten Dateien in das Webapplikationsverzeichnis des Servers kopiert werden. Dies kann über unsere mitgelieferten Kopierskripts (Achtung, müssen angepasst werden!), oder auch gerne durch andere Mechanismen geschehen.
  
 <WRAP center round important> <WRAP center round important>
Zeile 105: Zeile 104:
  
 <WRAP center round important> <WRAP center round important>
-Es ist leider eine gängige Praxis bei Linux-Systemen (und in geringerem Umfang auch Windows) standartmäßig mit dem Superuser zu arbeiten. In Zeiten von Emotet und ähnlicher Schadsoftware, die auch schon einige Hochschulen befallen hatten, sollte es überflüssig sein zu erläutern, wieso das generell eine schlechte Idee ist. Hier ein weiterer Grund:\\  +Es ist leider eine gängige Praxis bei Linux-Systemen (und in geringerem Umfang auch Windows) standartmäßig mit dem Superuser zu arbeiten. In Zeiten von Emotet und ähnlicher Schadsoftware, die auch schon einige Hochschulen befallen haben, sollte es überflüssig sein zu erläutern, wieso das generell eine schlechte Idee ist. Hier ein weiterer Grund:\\  
-Wenn mit dem root-User git-Operationen ausgeführt werden, dann werden die Änderungen im .git-Ordner auch mit dem root-User als Inhaber hinterlegt. Ein normaler Nutzer kann dann diese nicht mehr ändern ohne die git-Befehle selbst unter Superuser-Kontext auszuführen. Je nach Art der Änderungen wird das dem Nutzer aber von git nicht mit geteilt. In anderen Worten: es kann dadurch passieren, dass ein 'git pull' ohne Fehlermeldung durchläuft, jedoch keine oder nicht alle Dateien aktualisiert werden. Daher noch einmal: **Bitte, wiederstehen Sie der 'sudo -s'-Versuchung.**+Wenn mit dem root-User git-Operationen ausgeführt werden, dann werden die Änderungen im .git-Ordner auch mit dem root-User als Inhaber hinterlegt. Ein normaler Nutzer kann dann diese nicht mehr ändern ohne die git-Befehle selbst unter Superuser-Kontext auszuführen. Je nach Art der Änderungen wird das dem Nutzer aber von git nicht mit geteilt. In anderen Worten: es kann dadurch passieren, dass ein 'git pull' ohne Fehlermeldung durchläuft, jedoch keine oder nicht alle Dateien aktualisiert werden. Daher noch einmal:\\ 
 +<WRAP center>**Bitte, wiederstehen Sie der 'sudo -s'-Versuchung.**</WRAP>
 </WRAP> </WRAP>
  
Zeile 113: Zeile 113:
 Im Ordner Konfigurationsdateien gibt es Skripte für Windows (//CopyFN2-Webapps.cmd//) und Linux (//CopyFN2-Webapps.sh// und //fn2excl.txt//). Bitte diese als Kopiervorlage verwenden und in den Skripten die gewünschten Variablen setzen bzw. die auszuschließenden Ordner als solche markieren. Im Ordner Konfigurationsdateien gibt es Skripte für Windows (//CopyFN2-Webapps.cmd//) und Linux (//CopyFN2-Webapps.sh// und //fn2excl.txt//). Bitte diese als Kopiervorlage verwenden und in den Skripten die gewünschten Variablen setzen bzw. die auszuschließenden Ordner als solche markieren.
  
 +Anschließend müssen alle Einträge und Änderungen in den Hochschul-spezifischen Dateien vorgenommen werden, die seit dem letzten Update hinzugekommen sind. Daher, die [[releasenotes:start|Release Notes]] müssen vom alten bis zum aktuellen Stand durchgegangen und die Änderungen übernommen werden. Da das bei vielen Änderungen ein sehr aufwändiger und zeitraubender Prozess sein kann, empfehlen wir Updates möglichst häufig aufzuspielen um Fehler zu vermeiden.
 ===== fn2Web-Releases Verzeichnisstruktur ===== ===== fn2Web-Releases Verzeichnisstruktur =====
  
Zeile 126: Zeile 127:
   git pull   git pull
 führt eigentlich zwei separate Befehle aus: 'git fetch' und 'git merge'.\\  führt eigentlich zwei separate Befehle aus: 'git fetch' und 'git merge'.\\ 
-Fetch wurde bereits beschrieben, Merge führt lokal eingepflegte (commitete) Änderungen mit denen des Remote-Branches zusammen. Wir möchten Sie bitten Darauf zu verzichten lokal Änderungen ein zu pflegen. <wrap important>Wir übernehmen weder Garantie, noch Support, für derartige ÄnderungenBitte sprechen Sie solche Eingriffe mit uns ab!</wrap>+Fetch wurde bereits beschrieben, Merge führt lokal eingepflegte (commitete) Änderungen mit denen des Remote-Branches zusammen. Wir möchten Sie bitten, darauf zu verzichten lokal Änderungen ein zu pflegen. <wrap important>Wir übernehmen weder Garantie, noch Support, für derartige ÄnderungenBitte sprechen Sie solche Eingriffe mit uns ab!</wrap>
  
   git branch   git branch
Zeile 143: Zeile 144:
  
  
-==== Wenn der Hinweis ignoriert wurde und vorhandene Dateien geändert wurden, ist folgendes durchzuführen: ====+==== Wenn vorhandene Dateien geändert wurden, ist folgendes durchzuführen: ====
  
-Ein Update wird dann mit dem Hinweis abbrechen, dass lokale Änderungen durch das Update überschrieben würden und man diese entweder committen (was von FlexNow-Seite aus nicht erwünscht ist) oder diese "Stashen" soll. In diesem Fall bitte ein Stash durchzuführen, d.h die veränderten Daten in einen Zwischenspeicher abzulegen.<code>git stash</code> Danach ist es nötig mit dem bereits erwähnten Befehl <code>git pull</code> ein Update zu holen und abschließend den Stash zu bereinigen. <code>git stash list</code> <code>git stash drop stash@{0}</code> Hinweise gibt es im [[https://git-scm.herokuapp.com/book/en/v2/Git-Tools-Stashing-and-Cleaning|GIT-Buch]].+Ein Update wird dann mit dem Hinweis abbrechen, dass lokale Änderungen durch das Update überschrieben würden und man diese entweder committen (was von FlexNow-Seite aus nicht erwünscht bzw möglich ist) oder diese "Stashen" soll. In diesem Fall bitte ein Stash durchzuführen, d.h die veränderten Daten in einen Zwischenspeicher abzulegen.<code>git stash</code> Danach ist es nötig mit dem bereits erwähnten Befehl <code>git pull</code> ein Update zu holen und abschließend den Stash zu bereinigen. <code>git stash list</code> <code>git stash drop stash@{0}</code> Hinweise gibt es im [[https://git-scm.herokuapp.com/book/en/v2/Git-Tools-Stashing-and-Cleaning|GIT-Buch]].
  
 Alternativ kann, vor allem bei schwereren Beschädigungen am Repository, mit dem reset-Befehl gearbeitet werden: Alternativ kann, vor allem bei schwereren Beschädigungen am Repository, mit dem reset-Befehl gearbeitet werden:
fn2/aktualisierung.1619698037.txt.gz · Zuletzt geändert: 2021/04/29 14:07 von christoph