From abdf5f660afb382acd5a1758dec9dba647de3308 Mon Sep 17 00:00:00 2001 From: Borgal Date: Wed, 20 Aug 2025 22:10:16 +0000 Subject: [PATCH] paperless/README.md aktualisiert --- paperless/README.md | 141 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 140 insertions(+), 1 deletion(-) diff --git a/paperless/README.md b/paperless/README.md index bfe24a5..16ec951 100644 --- a/paperless/README.md +++ b/paperless/README.md @@ -18,4 +18,143 @@

gegebenfalls noch die NFS Tools installieren
apt install nfs-common
-

\ No newline at end of file +

+ + +# Update Paperless-ngx mit DB-upgrade ! + +### Schritt 1: Datenbank sichern und vorbereiten + +1. **Stoppen Sie den `webserver`-Dienst**, um zu verhindern, dass die Anwendung während des Backups Daten in die Datenbank schreibt. Der `db`-Dienst muss dabei **laufen**. + + ``` + docker compose stop webserver + + ``` + +2. **Überprüfen Sie, ob der `db`-Dienst läuft**. + + ``` + docker compose ps + + ``` + + Der Status von `paperless_db` sollte `Up` sein. Wenn er nicht läuft, müssen Sie die Logs mit `docker compose logs db` überprüfen, um das Problem zu beheben, bevor Sie fortfahren. + +3. **Führen Sie den Backup-Befehl aus**. Dieser Befehl startet `pg_dump` innerhalb des laufenden `db`-Containers und speichert die Ausgabe in eine Datei auf Ihrem Host. + + ``` + docker compose exec db pg_dump -U paperless -Fc paperless > paperless_db_backup.dump + + ``` + + Eine komprimierte Backup-Datei namens `paperless_db_backup.dump` wird im selben Verzeichnis wie Ihre `docker-compose.yml` erstellt. + + +---------- + +### Schritt 2: `docker-compose.yml` aktualisieren + +1. **Stoppen Sie alle Dienste**, um eine saubere Ausgangsbasis zu schaffen. + + ``` + docker compose down + + ``` + +2. **Bearbeiten Sie Ihre `docker-compose.yml`-Datei.** + + - Ändern Sie das `image` für den `db`-Dienst von `postgres:13` auf `postgres:17`. + + - **Wichtig:** Ändern Sie den `volumes`-Pfad für die neuen Datenbankdaten, um zu verhindern, dass die alten Daten überschrieben werden. PostgreSQL-Versionen sind nicht direkt kompatibel. + + + YAML + + ``` + # ... + services: + # ... + db: + image: docker.io/library/postgres:17 # Version geändert + container_name: paperless_db + restart: unless-stopped + volumes: + - ./db_v17_data:/var/lib/postgresql/data # WICHTIG: Pfad geändert + environment: + POSTGRES_DB: paperless + POSTGRES_USER: paperless + POSTGRES_PASSWORD: paperless + labels: + - "com.centurylinklabs.watchtower.monitor-only=true" + # ... + + ``` + +3. **Starten Sie nur den neuen Datenbank-Container**. + + + ``` + docker compose up -d db + + ``` + + Dadurch wird ein neuer, leerer PostgreSQL 17-Container erstellt. + + +4. **Importieren über einen temporären Ordner**. + + + ``` + docker compose cp paperless_db_backup.dump db:/tmp/paperless_db_backup.dump + + ``` + + Dieser Befehl kopiert Ihre lokale Backup-Datei in das `/tmp`-Verzeichnis des laufenden `db`-Containers. + +2. **Stellen Sie das Backup im Container wieder her:** + + + ``` + docker compose exec db sh -c "pg_restore -U paperless -d paperless /tmp/paperless_db_backup.dump" + + ``` + + Hierbei übergeben Sie den Pfad der Datei direkt an den `pg_restore`-Befehl, anstatt die Eingabe umzuleiten. + +### Letzter Schritt: Dienste starten und bereinigen + +1. **Starten Sie die Paperless-ngx-Dienste:** Führen Sie den folgenden Befehl aus, um alle Dienste, einschließlich des `webserver`s, zu starten. + + Bash + + ``` + docker compose up -d + + ``` + +2. **Überprüfen Sie die Funktionalität:** Öffnen Sie die Paperless-ngx-Weboberfläche in Ihrem Browser. Melden Sie sich an und überprüfen Sie, ob Ihre Dokumente korrekt angezeigt werden und die Anwendung wie erwartet funktioniert. + +3. **Bereinigen Sie die temporären Dateien:** Wenn alles einwandfrei läuft, können Sie die erstellten Sicherungsdateien löschen. + + Bash + + ``` + rm paperless_db_backup.dump + + ``` + + Sie können auch das alte Datenbank-Volume löschen, um Speicherplatz freizugeben. + +4. **Löschen Sie die alte Datenbank (optional):** Falls Sie das alte Datenbank-Volume nicht mehr benötigen, können Sie es ebenfalls entfernen. **Seien Sie hier vorsichtig, um keine wichtigen Daten zu verlieren.** + + Bash + + ``` + docker volume ls # find the old volume name + docker volume rm + + ``` + + +Herzlichen Glückwunsch, Ihre PostgreSQL-Datenbank wurde erfolgreich von Version 13 auf 17 migriert! \ No newline at end of file