Upgrade von paperless-ngx v2 auf v3: Schritt für Schritt erklärt

Hallo zusammen,

lange habe ich überlegt, wie ich es umsetzen soll, aber mir erscheint es einfach nicht richtig, Kapital aus der Not der Community zu schlagen, nachdem bei so vielen von euch das Upgrade schiefläuft.

Daher habe ich mich dazu entschieden, den Upgrade-Prozess in einem YouTube-Video zu zeigen (und zwar Schritt für Schritt) und nicht hinter der Paywall der Masterclass zu verstecken.
Keine Sorge: In der Masterclass werden alle neuen v3-Features nun, da die v3 mittlerweile stabil ist, gezeigt und erklärt und es wird außerdem einen Community-Call geben, wo ihr eure Themen loswerden könnt, die vielleicht nicht in dem Video behandelt werden.

Hier das Video, viel Erfolg beim Upgrade:

Beste Grüße
Stefan

Moin Stefan,

vielen Dank für die Anleitung. Ich werde mich morgen ranmachen und das Update durchführen.

Viele Grüße

Michael

Danke, damit hat sich doch das warten gelohnt. Eine “dumme” Frage hätte ich dennoch.

Bei Minute 16:37 muss ich da keinen Pull Befehl setzen für das Update?

Danke

Gern!

Pull braucht man in dem Fall nicht, weil man den Stack neu startet. Docker macht den Pull automatisch, sofern es merkt, dass es das gewünschte Image noch nicht hat. Weil wir aber am Anfang des Videos schon auf „latest“ gesetzt haben (um es bewusst falsch zu machen), war das Image schon da. Schaden tut ein Pull aber nicht.

Hallo zusammen,

Habe mich dann mal mutig an das Update gewagt und bekomme dann aber einen Fehler bei der Verarbeitung der Dokumente, zumindest sieht es so aus und ich verstehe nicht wieso, weil ich mich strikt ans Videogehalten habe.

Hat jemand eine Idee, was ich falsch gemacht habe, bzw. Wie ich das Problem lösen kann.

Viele Grüße

Steffen

Wie lautet der Fehler bei Verarbeitung. Fehlerbild oder genaue Fehlermeldung/Log?

Hast du eine neuinstallation gemacht ? sieht so aus

Nein, nur die Änderungen in der yml und env vorgenommen, den Pull und dann wie gestartet.

Hallo zusammen,

ich will von Paperless V2.20.15 (mit DB Postgres V18) upgraden auf V3. Ich habe schon vor längerer Zeit den Masterclass-Kurs gekauft und will das Upgrade mit der darin enthaltenen Anleitung durchführen. Der Status der Upgrade-Anleitung steht aber immer noch auf „in Produktion“. Wann ist diese Anleitung verfügbar?

Viele Grüße

Siegfried

Oben hast du die aktuelle Anleitung von Stefan. (9.9.2026)

Das Upgrade hat mit Hilfe der Anleitung von Stefan problemlos geklappt. Danke für den Tipp.

Gruß Siegfired

Hallo CoolTux,

was mich irritiert beim Hochfahren ist die Warnung zur Datenbank. Ich habe da doch gar nichts gemacht, sondern nur die Änderungen für v3 eingepflegt.

Hier nochmal ein Bild.

Viele Grüße

Steffen

Diese Meldung kommt wenn eine neue Version gestartet wird und diese ein Schemata Update mitbringt. Er korrigiert es ja in der 2. Zeile.

Wenn Du jetzt den Stack noch einmal runter fährst und neu startest sollte diese Meldung nicht mehr kommen.

Läuft denn ansonsten Paperless? Kannst Du Dokumente laden oder neue hinzufügen?

Hallo,

ja läuft! Super, vielen Dank für deinen Hinweis. Ich hatte den Start immer abgebrochen, nachdem ich immer die Fehlermeldungen gesehen habe. War ein wenig panisch. Nochmals vielen Dank für deine Unterstützung.

Besten Dank, mit der Anleitung hat es bestens funktioniert. Sache von 30min. (bei 1500 Dokumenten auf einer NAS). Völlig problemlos und fehlerfrei.

Bei mir schien alles zu klappen, Paperless ist erreichbar, allerdings habe ich seit 5 Stunden im Startprozess folgende sich ständig wiederholende Meldungen:

config-webserver-1 | [2026-09-13 15:54:00,062] [INFO] [celery.beat] Scheduler: Sending due task Check all e-mail accounts (paperless_mail.tasks.process_mail_accounts)

config-webserver-1 | [2026-09-13 15:54:00,131] [INFO] [celery.worker.strategy] Task paperless_mail.tasks.process_mail_accounts[673dfe72-d000-402d-b3ba-14553739ce0d] received

config-webserver-1 | [2026-09-13 15:54:00,216] [INFO] [celery.app.trace] Task paperless_mail.tasks.process_mail_accounts[673dfe72-d000-402d-b3ba-14553739ce0d] succeeded in 0.08281239122152328s: ‚No new documents were added.‘

config-db-1 | 2026-09-13 13:54:33.165 UTC [27] LOG: checkpoint starting: time

config-db-1 | 2026-09-13 13:54:36.201 UTC [27] LOG: checkpoint complete: wrote 19 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.805 s, sync=0.832 s, total=3.036 s; sync files=19, longest=0.141 s, average=0.044 s; distance=35 kB, estimate=48 kB; lsn=0/C1C8C728, redo lsn=0/C1C8C6D0

Liegt das an vielen Dateien oder läuft irgendetwas falsch?

Das sind nur Info Meldungen, keine Fehler!

Hallo,

ich habe zunächst mal versucht, auf die Version 2.20.15 zu updaten.

Dabei erhalte ich nach dem „up“ folgende Meldungen:

paperless-db-1 | 2026-09-14 12:21:20.218 UTC [49] WARNING: database „paperless“ has a collation version mismatch
paperless-db-1 | 2026-09-14 12:21:20.218 UTC [49] DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41.
paperless-db-1 | 2026-09-14 12:21:20.218 UTC [49] HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE paperless REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
paperless-db-1 | 2026-09-14 12:22:20.276 UTC [50] WARNING: database „paperless“ has a collation version mismatch
paperless-db-1 | 2026-09-14 12:22:20.276 UTC [50] DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41.
paperless-db-1 | 2026-09-14 12:22:20.276 UTC [50] HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE paperless REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.

Ich verstehe grundsätzlich, dass es mit der Sortierung zu tun hat, weiß aber nicht im Detail, was ich wo machen muss…

Wie kriege ich das repariert?

Gruss
Lutz

Ok dann muss ich doch mal genauer werden.
Also erstmal ist das nur eine Warnung. Paperless sollte weiter funktionieren.
Grund für das ganze ist das sich das zu Grunde liegende Betriebssystem für den Datenbank Container geändert hat. Genauer gesagt die C-Standardbibliothek (glibc).
PostgreSQL erkennt diesen Versionssprung (von 2.36 auf 2.41) bei der Textsortierung (Collation) und warnt, da dies bestehende Indizes korrumpieren könnte.

Ich dachte bei der oberen Meldung eines Kollegen das die DB das selber regelt. Macht sie aber nicht. Da steht ja auch expliziet was man doch bitte machen sollte.

1 . Mit der Datenbank verbinden

Docker Host

Starte eine interaktive PostgreSQL-Sitzung direkt im betroffenen Container. Passe den Benutzernamen an, falls in der docker-compose.yml ein anderer definiert wurde.

docker exec -it paperless-db-1 psql -U paperless -d paperless

Der Schritt war erfolgreich, wenn die Eingabeaufforderung zu paperless=# wechselt.

2. Indizes neu aufbauen

Datenbank-Konsole

Um sicherzustellen, dass die neue Sortierlogik auf alle bestehenden Textfelder korrekt angewendet wird, müssen die Indizes neu aufgebaut werden.

REINDEX DATABASE paperless;

Der Befehl ist abgeschlossen, wenn nach einigen Sekunden wieder der leere Prompt erscheint und keine Fehlermeldung ausgegeben wird.

3. Collation-Version aktualisieren

Datenbank-Konsole

Bestätige PostgreSQL, dass die neue Version der Betriebssystembibliothek akzeptiert wird, um die Warnmeldung künftig zu unterdrücken.

ALTER DATABASE paperless REFRESH COLLATION VERSION;

Eine erfolgreiche Ausführung wird typischerweise mit NOTICE: changing version from 2.36 to 2.41 gefolgt von ALTER DATABASE bestätigt.

4. Sitzung beenden und prüfen

Verlasse die PostgreSQL-Konsole und prüfe die Logs.

\q

Führe auf dem Host docker logs -f paperless-db-1 aus. Der Schritt ist erfolgreich verifiziert, wenn in den neu generierten Log-Einträgen die „collation version mismatch“ Warnung nicht mehr auftaucht.

Hallo Stefan,

ich habe mich an das Update von der 2.20.15 auf die 3.1 gewagt und bin nach Deiner Anleitung vorgegangen. Mein Herz stand kurz still, als sich der Webserver nach dem Update nicht aufrufen ließ. Da war ich aber wohl einfach zu schnell. Ist jetzt problemlos erreichbar und die Version 3.1 wird dort angezeigt. Das Update hat somit funktioniert.

Ein Punkt ist mir allerdings nicht ganz klar: In Deiner docker-compose.yml - es geht um Deine V3 - steht folgende Zeile, die bei mir anders ausschaut (dort steht bei mir redis)

services:
broker:
image: docker.io/valkey/valkey:9-alpine

Muss / sollte ich diesen Eintrag in meiner docker-compose.yml anpassen? Ich habe die V3 aus der Masterclass geladen. Dort hieß es ja, dass die Datei in der Bearbeitung sein. Deswegen meine Frage. Denn in der ursprünglichen V2 läuft es bei mir mit 3.1 von paperless-ngx nach dem Update problemlos.

Viele Grüße
Frank

P.S.: Dickes Lob für das sehr ausführliche Video! Ich hatte ab und an in der Masterclass geschaut. Finde es klasse, dass Du es hier veröffentlicht hast. Ohne die Tipps wäre ich vermutlich in genau die Falle getappt, die Du im Video auch gezeigt hast.