Deine Instanz aktualisieren

Das Aktualisieren von KolleK ist bewusst unspektakulär gehalten: neuere Version ziehen, neu bauen, fertig. Diese Seite erklärt, warum das sicher ist, und den einen Schritt, den du nach dem Update kennen solltest.

Warum bei Updates keine Daten verloren gehen

Zwei Eigenschaften machen den Update-Pfad sicher:

  • Deine Daten liegen in benannten Volumes (db-data für die Datenbank, storage-data für Dateien), unabhängig von den Containern und dem Image. Container neu zu bauen rührt sie nicht an.
  • Migrationen wirken nur vorwärts. Der Web-Container wendet ausstehende Datenbankmigrationen beim Start mit migrate --force an, und KolleK liefert nie eine Migration aus, die Daten zurücksetzt oder destruktiv umschreibt. Ein Update fügt dem Schema nur etwas hinzu.

Aktualisieren

1
Erst sichern

Erstelle einen Datenbank-Dump und ein Storage-Archiv wie in Deine Instanz sichern und wiederherstellen beschrieben. Updates sind von Natur aus sicher, aber ein Backup macht aus "von Natur aus sicher" ein "sicher, Punkt".

2
Die neue Version holen

Ziehe im Repository-Verzeichnis die Version, auf die du aktualisieren möchtest:

git pull
3
Neu bauen und neu starten
docker compose up -d --build

Compose baut das Image neu und erstellt die Container neu. Beim Start wendet der Web-Container automatisch alle neuen Migrationen an, danach ist die Instanz wieder unter deiner APP_URL erreichbar.

Wenn du Migrationen lieber manuell steuerst, setze RUN_MIGRATIONS=false und führe docker compose exec app php artisan migrate --force selbst als Teil des Ablaufs aus, wie in Installation mit Docker beschrieben.

Der Schritt für den Fotosuche-Index

Ein Update enthält eine einmalige Wartungsaufgabe: Instanzen, die älter sind als der Fotobibliotheks-Bildschirm, müssen ihren Fotosuche-Index einmalig aufbauen, sonst bleibt die Fotosuche für bestehende Fotos leer.

docker compose exec app php artisan photos:rebuild-search-index

Der Befehl ist idempotent und kann gefahrlos auf jeder Instanz ausgeführt werden. Im Zweifel also einfach ausführen. Er füllt außerdem nachträglich die Bildabmessungen für Fotos auf, die hochgeladen wurden, bevor Abmessungen erfasst wurden.

Der Schritt für den Kontosuche-Index

Die kontoweite Suche liest einen eigenen Index. Die Migration legt die Tabelle an, gefüllt wird sie aber nur vom Neuaufbau-Befehl, auf einer bestehenden Instanz findet die Suche also nichts, bis er einmal gelaufen ist:

docker compose exec app php artisan search:rebuild-index

Er geht jeden Datensatz in jedem Konto durch, gib ihm auf einer großen Instanz also einen Moment. Danach hält sich der Index bei Änderungen von selbst aktuell. Siehe Das ganze Konto durchsuchen.

Notiz

Ändere APP_KEY nicht im Rahmen eines Updates. Der Schlüssel überdauert jede Version. Falls eine Update-Anleitung jemals so klingt, als würde sie einen neuen Schlüssel verlangen, hast du sie missverstanden. Siehe Der Anwendungsschlüssel und Verschlüsselung.

Wie es weitergeht

  • Halte Backups aktuell, damit jedes Update von einem sauberen Stand ausgeht.
  • Sieh dir Geplante Wartungsaufgaben an, die automatisch weiterlaufen, sobald der Scheduler-Container wieder oben ist.
Dokumentation für KolleK Diese Seite auf GitHub bearbeiten
War diese Seite hilfreich?