Zum Inhalt

Aktualisierung

Anleitung zur Aktualisierung von Bifolk auf eine neue Version.

Zielgruppe: Systemadministratoren


Vor der Aktualisierung

Vervollständigen Sie diese Checkliste vor dem Start:

  • Release-Notes auf Breaking Changes lesen
  • Datenbank sichern (siehe Backup & Wiederherstellung)
  • Mediendateien und Konfiguration sichern (.env, secrets/)
  • Ausreichend Festplattenspeicher sicherstellen
  • Benutzer über geplante Ausfallzeit informieren

Aktuelle Version prüfen

# Git-Version
git describe --tags --always

# Django-Version
docker compose exec bifolk-app python -c "import django; print(django.get_version())"

Standard-Aktualisierungsverfahren

Schritt 1: Backup erstellen

# Datenbank-Backup (PostgreSQL)
docker compose exec bifolk-db pg_dump -U bifolk bifolk -F c > backup-pre-upgrade-$(date +%Y%m%d).dump

# Mediendateien
tar -czf media-backup-$(date +%Y%m%d).tar.gz -C app/media .

# Konfiguration
tar -czf config-backup-$(date +%Y%m%d).tar.gz .env config/

Schritt 2: Anwendung stoppen

docker compose stop bifolk-app

Schritt 3: Neuesten Code holen

git fetch origin

# Bestimmte Version auschecken (empfohlen)
git checkout v1.3.0

# Oder neuesten Stand von main holen
git checkout main && git pull origin main

Schritt 4: Neu bauen und migrieren

# Docker-Image neu bauen
docker compose build bifolk-app

# Datenbankmigrationen anwenden
docker compose run --rm bifolk-app python manage.py migrate

# Statische Dateien aktualisieren
docker compose run --rm bifolk-app python manage.py collectstatic --no-input

Schritt 5: Starten und verifizieren

# Anwendung starten
docker compose up -d

# Logs auf Fehler prüfen
docker logs bifolk-app --tail 100

# Web-Oberfläche verifizieren
curl -I http://localhost:8000

# Django-Systemprüfung ausführen
docker compose exec bifolk-app python manage.py check --database default

Schritt 6: Nach-Aktualisierungs-Verifizierung

  • Als Admin-Benutzer anmelden
  • Überprüfen, ob bestehende Bienenstöcke und Durchsichten korrekt angezeigt werden
  • Erstellen eines neuen Datensatzes testen
  • Prüfen, ob Organisationswechsel funktioniert
  • Logs 24 Stunden überwachen

Schnellaktualisierung (nur Entwicklung)

Warning

Nur für Entwicklungsumgebungen verwenden.

git pull origin main
docker compose down
docker compose up -d --build
docker compose exec bifolk-app python manage.py migrate

Datenbankmigrationen

Ausstehende Migrationen prüfen

# Alle Migrationen und ihren Status anzeigen
docker compose exec bifolk-app python manage.py showmigrations

# Nur nicht angewendete anzeigen
docker compose exec bifolk-app python manage.py showmigrations --plan | grep "\[ \]"

Migrationen anwenden

# Immer zuerst sichern
docker compose exec bifolk-db pg_dump -U bifolk bifolk -F c > backup-pre-migration.dump

# Anwenden
docker compose exec bifolk-app python manage.py migrate

Fehlgeschlagene Migrationen behandeln

# Eine bestimmte App auf eine frühere Migration zurücksetzen
docker compose exec bifolk-app python manage.py migrate hives 0003_previous_migration

# Wenn nicht wiederherstellbar, aus Backup wiederherstellen
# Siehe Rollback-Abschnitt unten

Rollback

Wenn eine Aktualisierung fehlschlägt, stellen Sie den vorherigen Zustand wieder her.

Vollständiger Rollback

# Anwendung stoppen
docker compose stop bifolk-app

# Datenbank aus Backup wiederherstellen
docker compose exec -T bifolk-db psql -U bifolk -c "DROP DATABASE bifolk;"
docker compose exec -T bifolk-db psql -U bifolk -c "CREATE DATABASE bifolk;"
cat backup-pre-upgrade-YYYYMMDD.dump | docker compose exec -T bifolk-db pg_restore -U bifolk -d bifolk -F c

# Vorherige Version auschecken
git checkout v1.2.0

# Neu bauen und starten
docker compose build bifolk-app
docker compose up -d

# Verifizieren
curl -I http://localhost:8000

Nur-Migrations-Rollback

# Eine bestimmte App auf eine bekannte gute Migration zurücksetzen
docker compose exec bifolk-app python manage.py migrate hives 0003_previous_migration

# Neu starten
docker compose restart bifolk-app

Verwandte Dokumentation