Paperless-ngx, Teil 22: Update der Datenbank – super-simpel

Bei einer Standard-Installation von Paperless-ngx werden die Daten in einer PostgreSQL-Datenbank gespeichert. Über lange Zeit wurde dafür PostgreSQL in der Version 15 benutzt. Damit klappen Paperless-ngx-Updates zwar auch weiterhin, aber in der nächsten Zeit sollte man doch auf die aktuelle Version 17 von PostgreSQL umsteigen. Diese Empfehlung hat die Paperless-ngx-Community in den letzten Monaten etwas verwirrt, weil ein Datenbank-Update etwas komplexere Anforderungen stellt. So sind wieder zahlreiche YouTube-Videos entstanden mit komplizierten Erklärungen, die eher abschrecken. Das ist unnötig – denn es gibt einen sehr einfachen sauberen Weg, die Aktualisierung ohne Datenverlust durchzuführen. Die Sache ist in 5 Minuten erledigt – und schon betreibt man sein Paperless-ngx mit PostgreSQL 17. Aber wie immer gilt: Zuvor ein Backup durchführen!

Vorbereitung in zwei Schritten

1. Export-Befehl

Zunächst führt man den Export-Befehl durch, um den aktuellen Datenbestand samt Einstellungen, Nutzerkonten, Tags, Speicherpfaden usw. mit einem Klick zu sichern. Bei der Docker-Compose-Installation, die ich für den Raspberry Pi vorgeschlagen habe, sieht der Befehl so aus (evtl. zuvor „docker compose down“):

docker compose exec -T webserver document_exporter ../export -z

Diesen Befehl gibt man im Verzeichnis „home/pi/paperless-ngx“ im Terminal ein (oder erledigt es über SSH) – die exportierten Dateien sind anschließend unter „home/pi/paperless-ngx/export“ zu finden.

2. Verzeichnis umbenennen

Jetzt das Verzeichnis umbenennen, z. B. in „paperless-ngx_alt“. Fertig. Kein neues Verzeichnis anlegen – das erledigt das Installationsskript automatisch.

Blanko-Installation von Paperless-ngx

Nun im Terminal den Befehl für eine Neu-Installation von Paperless-ngx eingeben und die Fragen beantworten (Schritt-für-Schritt-Anleitung in Teil 5 der Artikelserie – statt „docker-compose“ heute „docker compose“ ohne Bindestrich nutzen). Es wird dadurch wieder ein Verzeichnis „paperless-ngx“ angelegt. In der „docker-compose.yml“-Datei kann man ersehen, dass nun PostgreSQL 17 verwendet wird:

Kurz starten mit „docker compose up -d“ und im Browser aufrufen – die aktuellste Version von Paperless-ngx sollte nun zu sehen sein. Jetzt noch den Import-Befehl ausführen. Dazu die durch den Export-Befehl gesicherten Dateien auf den leeren Export-Pfad des neuen Paperless-ngx entpacken. Anschließend im Pfad „/home/pi/paperless-ngx“ den Import-Befehl ausführen. Achtung: Diesmal nicht vorher „docker compose down“ ausführen!

docker compose exec webserver document_importer ../export

Wahrscheinlich gibt es eine kleine Warnung, dass bereits ein Nutzer angelegt wurde. Dieser wird durch den Import mit den bisherigen Account-Daten überschrieben – das ist ja immer so beim Import.

Okay – erledigt. Wenn man nun Paperless-ngx aufruft, sind die Dokumente wieder alle da, man nutzt die aktuellste Paperless-ngx-Version samt der aktuellen PostgreSQL-Version 17.

Hinweise

Wenn man Paperless-ngx mit komplexen Skripten und Arbeitsabläufen modifiziert hat – etwa bei Umgebungsvariablen oder mit zusätzlichen Post-Skripten -, dann muss man diese Ergänzungen evtl. noch mal neu einrichten. Bei mir lief alles unproblematisch – aber da muss jeder selbst entscheiden, ob das die richtige Methode für ihn ist. Backups sind ja eine Selbstverständlichkeit – darauf bin ich in einigen Artikeln der Serie eingegangen. Zudem kann man vorher einen Testlauf durchführen: Ich habe immer eine Parallel-Installation auf meinem Raspberry Pi 4. Bevor ich meine Hauptinstallation auf dem Raspberry Pi 5 ändere, probiere ich in dieser Testinstallation alles aus. Wer keinen zweiten Server zur Hand hat, der kann das auch vorab auf seinem Linux-Desktop-Rechner ausprobieren (sogar unter Windows sind Docker-Installationen möglich).

Bisherige Teile der Paperless-ngx-Serie:

Teil 1: Ausführlicher Überblick
Teil 2: Suche & Tags
Teil 3: consume-Ordner – Einsatz von Scannern
Teil 4: Speicherpfade konfigurieren
Teil 5: Installation auf dem Raspberry Pi
Teil 6: Neue Funktionen in Version 2
Teil 7: Dokumente unterwegs über das eigene Modem abrufen
Teil 8: Exportfunktion nutzen
Teil 9: Update durchführen
Teil 10: Das Rundum-sorglos-Backup
Teil 11: Mail-Abruf mit vielen Extras
Teil 12: Mein Alltag mit Paperless-ngx
Teil 13: Ein Quanten-Code für das Papier-Archiv
Teil 14: Automatisierte Ablage auf Speicherpfaden
Teil 15: Neue Funktion für das Verbinden und Trennen von Dokumenten
Teil 16: Dashboard, smarte Widgets und erweiterte Ansichten
Teil 17: Unterordner des consume-Verzeichnisses nutzen
Teil 18: Paperless-ngx auf Synology/NAS ohne Docker nutzen
Teil 19: Praxisbeispiel – kleine Hausverwaltung
Teil 20: Dokumente per Mail aus dem Heimnetz versenden
Teil 21: Die 1-Klick-Sicherung mit allem Drum und Dran
Teil 22: Update der Datenbank – super-simpel
Teil 23: Neuer PDF-Editor
Teil 24: Der Mega-All-in-One-Befehl für die Sofortinstallation
Teil 25: Der Briefmarken-PC für die Weitergabe

7 Kommentare

  • Daniel

    Hey,
    bei mir läuft Paperless auf einem Raspberry5.
    Zum testen habe ich auf meinem alten Raspberry 4 Paperless installiert.
    Seitdem komme ich im webbrowser nicht mehr auf die Benutzeroberfläche von Paperless vom Raspberry 5 über das lokale Netzwerk. Ich habe beim 4 er dann den Port von 8000 auf 8001 geändert. Allerdings hat das nichts gebracht.
    Es kommt stets diese Fehlermeldung:
    Die Website ist nicht erreichbar
    192.168.178.89 hat die Verbindung abgelehnt.
    Versuche Folgendes:
    Verbindung prüfen
    Proxy und Firewall prüfen
    ERR_CONNECTION_REFUSED

    Hast Du da einen Tipp für mich?

    • Herbert

      Wenn Du zwei unterschiedliche Geräte hast, dann sollten die auch unter zwei unterschiedlichen IPs im Heimnetz erreichbar sein. Also z. B. …89 und …90. Ist dem so? Wenn nicht, dann schließe beide Geräte mal gleichzeitig an und schau, ob Du getrennte IPs erhälst. Falls es aber auch schon vorher getrennte IPs waren, so beeinflusst die eine Installation _nicht_ die andere. In diesem Fall würde ich eher auf den Browsercache tippen. Fahr mal alles runter, starte neu und nimm einen anderen Browser.

  • René

    Hallo
    Ich nutze paperless auf proxmox habe trotzdem die Anleitung benutzt, da das Prinzip ja gleich ist:
    Exportiert – umbenannt – Neuinstallation (auch online erreichbar) und der import bricht ab mit der Meldung:
    >>
    Database import failed
    Version mismatch: Currently 2.18.4, importing 2.15.3
    <<

    naja, die alte Datenbank war natürlich älter – hast Du nen Tipp?

    Danke
    René

    • Herbert

      Da ich Proxmox nicht nutze, kann ich leider nichts dazu sagen. Ich habe die im Artikel beschriebene Methode mehrfach angewendet, hat bisher immer geklappt.

      • René

        Wo der Container läuft spielt ja eigentlich keine Rolle. Scheinbar stört ihn ja, warum auch immer, die alte Datenbank vom Export.
        trotzdem Danke.

        • Holger

          Moin René,

          ich denke du kannst dein Problem lösen, indem du zuerst deine aktuelle Paperless Instanz auf die aktuellste Version updatest und gehst nochmal wie von Herbert beschrieben vor.

          • Michael U.

            Habe eben gerade mein Paperless unter proxmox aktualisiert, hatte einige Zeit damit vergeudet…
            Unterm Strich geht es sehr einfach:
            Backup der Daten unter Paperless:
            Da ich unter proxmox eine Sicherung hatte war ein probieren ja kein Thema.

            Also erst einmal eine Datensicherung von der zuletzt Funktionierenden paperless Instalation:
            Paperless Verzeichnis von wo aus dieser Befehl ausgefürt wird:
            cd /home/paperless
            docker exec webserver document_exporter /usr/src/paperless/export

            bei mir heist der (webserver) „ohne -1 oder sonstiges, herauszufinden mit:
            docker ps
            Dann habe ich unter: cd /data/paperless
            folgende ordner gelöscht:
            data
            media
            postgresql
            redis

            so hatte ich nur noch den export Ordner erhalten. Dort ist meine DASI drinnen.

            Dann in die unter : cd /home/paperless ligende : docker-compose.yml
            habe ich die version von postgres:13 auf postgres:17 geändert.
            Mit STRG X gespeichert.

            Dann

            Paperless stoppen: sudo docker compose down

            Paperless Update: sudo docker compose pull

            Paperless starten: sudo docker compose up -d

            Jetzt heißt es warten, hat bei mir bis zu 5min gedauert, danach war paperless wieder Aktuell und lief .

            Hoffe es hilft.

Schreibe einen Kommentar zu Daniel Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert