From f0438ca463e2ba777753357bf08050b2274ab832 Mon Sep 17 00:00:00 2001 From: fds2610-bot Date: Sat, 11 Apr 2026 11:58:12 +0200 Subject: [PATCH] =?UTF-8?q?Docs:=20Update-Anleitung=20in=20README.md=20ver?= =?UTF-8?q?vollst=C3=A4ndigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 89 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 00dc18f..63cbf1f 100644 --- a/README.md +++ b/README.md @@ -249,31 +249,100 @@ Seit dem 11.04.2026 bin ich mit meiner Software für mich selber produktiv. Ab d Datenbankmigrationen werden **automatisch** beim nächsten Container-Start eingespielt – kein manueller Eingriff nötig. Das Script `scripts/migrate.php` prüft beim Start, welche Migrations-Dateien noch nicht angewendet wurden, und führt sie der Reihe nach aus. -#### Ohne Systemd-Service (manuell) +### Vollständige Update-Anleitung + +Die folgenden Schritte sichern einen vollständigen und sicheren Update-Ablauf. Alle Befehle im Steuerkram-Verzeichnis ausführen. + +#### Schritt 1 – Datenbank sichern + +Vor jedem Update ein Backup erstellen: + +```bash +bash scripts/backup.sh +``` + +Das Backup landet in `backups/`. Alternativ manuell: + +```bash +docker compose exec db mariadb-dump -u steuerkram -psteuerkram steuerkram \ + > ~/steuerkram_backup_$(date +%Y%m%d_%H%M).sql +``` + +#### Schritt 2 – Aktuellen Code holen ```bash git pull +``` + +Prüfen, ob neue Migrations-Dateien enthalten sind: + +```bash +git log --oneline -5 +``` + +#### Schritt 3 – Container neu bauen und starten + +```bash docker compose up -d --build ``` -Der Web-Container führt `scripts/migrate.php` automatisch beim Start aus. Die Ausgabe ist im Container-Log sichtbar: +Dieser Befehl baut das PHP-Image neu (falls sich `Dockerfile` oder `composer.json` geändert haben) und startet alle Container. Der Web-Container führt beim Start automatisch `scripts/migrate.php` aus. + +#### Schritt 4 – Migrationen prüfen ```bash -docker compose logs web +docker compose logs web | grep migrate ``` -#### Mit Systemd-Service +Erwartete Ausgabe bei erfolgreicher Migration: + +``` +[migrate] Starte Migrations-Prüfung... +[migrate] Führe aus: NNN_beschreibung.sql +[migrate] N Migration(en) erfolgreich angewendet. +``` + +Oder wenn alles bereits aktuell ist: + +``` +[migrate] Datenbank ist aktuell – keine Migrationen notwendig. +``` + +Falls die Ausgabe einen Fehler enthält, das Backup aus Schritt 1 einspielen: ```bash +docker compose exec -T db mariadb -u steuerkram -psteuerkram steuerkram \ + < ~/steuerkram_backup_YYYYMMDD_HHMM.sql +``` + +#### Schritt 5 – Anwendung prüfen + +```bash +docker compose ps # alle Container müssen "running" sein +docker compose logs web # keine PHP-Fehler oder Exceptions +``` + +Anschließend im Browser unter `http://localhost:8080` (oder dem konfigurierten Port) einloggen und stichprobenartig Belege und Buchungen prüfen. + +--- + +#### Ohne Systemd-Service (Kurzform) + +```bash +bash scripts/backup.sh +git pull +docker compose up -d --build +docker compose logs web | grep migrate +``` + +#### Mit Systemd-Service (Kurzform) + +```bash +bash scripts/backup.sh git pull docker compose build sudo systemctl restart steuerkram -``` - -Migrations-Ausgabe im Journal: - -```bash -journalctl -u steuerkram -f +journalctl -u steuerkram | grep migrate ``` ## GoBD-Hinweise