2.4 KiB
Update & Backup
Backup
bash scripts/backup.sh
Das Skript erstellt einen Dump der Datenbank sowie ein Archiv der Uploads im Verzeichnis backups/. Die Rotation erfolgt nach folgendem Schema:
- 7 Tages-Backups
- 4 Wochen-Backups
- 12 Monats-Backups
Ein flock-Lock verhindert parallele Läufe bei Verzögerungen.
Manuelles Backup
docker compose exec db mariadb-dump -u steuerkram -psteuerkram steuerkram \
> ~/steuerkram_backup_$(date +%Y%m%d_%H%M).sql
Datenpersistenz
| Pfad | Inhalt |
|---|---|
./data/mariadb/ |
MariaDB-Datenbankdateien |
Docker Volume uploads |
Hochgeladene Belege |
Beide Pfade liegen außerhalb des Containers und bleiben bei docker compose down erhalten.
Update
Datenbankmigrationen werden automatisch beim nächsten Container-Start eingespielt. Das Script scripts/migrate.php prüft beim Start, welche Migrations-Dateien noch nicht angewendet wurden, und führt sie der Reihe nach aus.
Vollständige Update-Anleitung
Schritt 1 – Datenbank sichern
bash scripts/backup.sh
Schritt 2 – Aktuellen Code holen
git pull
Schritt 3 – Container neu bauen und starten
docker compose up -d --build
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
docker compose logs web | grep migrate
Erwartete Ausgabe:
[migrate] Starte Migrations-Prüfung...
[migrate] Führe aus: NNN_beschreibung.sql
[migrate] N Migration(en) erfolgreich angewendet.
Falls ein Fehler auftritt, das Backup aus Schritt 1 einspielen:
docker compose exec -T db mariadb -u steuerkram -psteuerkram steuerkram \
< ~/steuerkram_backup_YYYYMMDD_HHMM.sql
Schritt 5 – Anwendung prüfen
docker compose ps # alle Container müssen "running" sein
docker compose logs web # keine PHP-Fehler oder Exceptions
Kurzform ohne Systemd
bash scripts/backup.sh && git pull && docker compose up -d --build
docker compose logs web | grep migrate
Kurzform mit Systemd
bash scripts/backup.sh && git pull && docker compose build
sudo systemctl restart steuerkram
journalctl -u steuerkram | grep migrate