Webserver startet nicht mehr nach update

Hallo,

Ich habe paperles-ngx in Docker laufen. 2-3 Jahre ist das jetzt problemlos gelaufen, auch alle Updates, die so gekommen sind. Diese habe ich mit watchtower durchführen lassen. Seit ein paar Tagen funktioniert aber der Webserver von paperless-ngx nicht mehr. Der Container bleibt im gelben status „starting“ stehen. Ich habe keinen Schimmer, wie ich das Problem lösen soll. Der Server auf dem es läuft ist Debian 12.

Hier ist der Auszug aus den Webserver Logs:
Connected to PostgreSQL

[init-db-wait] Database is ready

[init-migrations] Apply database migrations…

Traceback (most recent call last):

File „/usr/src/paperless/src/manage.py“, line 10, in

execute_from_command_line(sys.argv)

File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 442, in execute_from_command_line

utility.execute()

File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 436, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 416, in run_from_argv

self.execute(*args, **cmd_options)

File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 460, in execute

output = self.handle(*args, **options)

         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 107, in wrapper

res = handle_func(*args, **kwargs)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/migrate.py“, line 114, in handle

executor = MigrationExecutor(connection, self.migration_progress_callback)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/migrations/executor.py“, line 18, in init

self.loader = MigrationLoader(self.connection)

              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py“, line 58, in init

self.build_graph()

File „/usr/local/lib/python3.12/site-packages/django/db/migrations/loader.py“, line 235, in build_graph

self.applied_migrations = recorder.applied_migrations()

                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py“, line 89, in applied_migrations

if self.has_table():

   ^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/migrations/recorder.py“, line 63, in has_table

with self.connection.cursor() as cursor:

     ^^^^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py“, line 26, in inner

return func(*args, **kwargs)

       ^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 320, in cursor

return self._cursor()

       ^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 296, in _cursor

self.ensure_connection()

File „/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py“, line 26, in inner

return func(*args, **kwargs)

       ^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 279, in ensure_connection

self.connect()

File „/usr/local/lib/python3.12/site-packages/django/utils/asyncio.py“, line 26, in inner

return func(*args, **kwargs)

       ^^^^^^^^^^^^^^^^^^^^^

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 258, in connect

self.init_connection_state()

File „/usr/local/lib/python3.12/site-packages/django/db/backends/postgresql/base.py“, line 398, in init_connection_state

super().init_connection_state()

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 225, in init_connection_state

self.check_database_version_supported()

File „/usr/local/lib/python3.12/site-packages/django/db/backends/base/base.py“, line 201, in check_database_version_supported

raise NotSupportedError(

django.db.utils.NotSupportedError: PostgreSQL 14 or later is required (found 13.22).

s6-rc: warning: unable to start service init-migrations: command exited 1

/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.

/run/s6/basedir/scripts/rc.init: fatal: stopping the container.

[init-start] paperless-ngx docker container starting…

[init-start] paperless-ngx docker container starting init as root

[env-init] Checking for environment from files

[env-init] No *_FILE environment found

[init-redis-wait] Waiting for Redis to report ready

[init-db-wait] Waiting for postgresql to report ready

[init-tesseract-langs] Checking if additional teseract languages needed

[init-db-wait] Waiting for PostgreSQL to start…

[init-tesseract-langs] No additional installs requested

[init-user] No UID changes for paperless

[init-user] No GID changes for paperless

[init-folders] Running with root privileges, adjusting directories and permissions

Waiting for Redis…

Connected to Redis broker.

[init-redis-wait] Redis ready

Vielleicht ist ja hier jemand, der mir bei dem Problem helfen kann.

Vielen Dank
Peter

Bin mir nicht sicher aber ist für die neue Version nicht ne höhere Version als pgsql 13 erforderlich ?

In deiner WallofText stand was mit Version 14.

Welche Version hast du im Einsatz ?

Das da meinte ich.
Text zu kurz

Genau!

hier noch der Link:

https://docs.paperless-ngx.com/administration/#database-upgrades

Im Stacks steht: image: Docker Hub Container Image Library | App Containerization

Eine Änderung auf 14 und redeploy bringt aber keine Änderung.

Mach ein downgrade von Paperless auf ne Version unter 2.18, und Guck zu das du da gleich nen Export machst als erstes wenn es wieder geht.
Dann mal mittels Anleitung zum PostgreSQL Upgrade vorgehen und auf 15/16 oder 17 upgraden

Postgres Datenbank kann man nicht einfach upgraden

Hier der Link für die Anleitung,

Die Ordner die in der Anleitugn Beschrieben sind nicht leeren sonder löschen und neu erstellen, sonst kann es sein dass beim Import gemeckert wird.

Hallo an alle,

ich habe genau das gleiche Problem.
Startet der Webserver beim Löschen und wieder Neuanlegen der Verzeichnisse?
Denn das ist glaube ich das hier beschriebene Problem - Bei mir ist es jedenfalls so. Der Import der Datenbank wäre der nächste Stepp.

Grüße

Hi,

Du musst schon Paperless starten und einen Pull ausführen dass die Cotnainer angelegt werden.
Wenn dann PAperless läuft und du dich anmelden könntest, was du nicht tust, erst dann dan Import vornehmen.

Der Downgrade auf 2.17.0 hat jetzt doch funktioniert.

Ich habe paperless-ngx in Portainer mit einem Stack installiert und nicht mit einer yml-Datei. Da komme ich mit der Anleitung nicht zurecht.

aber ich denke es soll kein pull lt. Anleitung (Wichtig: Keinen manuellen Pull durchführen, sonst kann sich die Version von paperless-ngx ändern!) von der masterclass ausgeführt werden…

Der Stack ist ja fast gleich aufgebaut wie eine yaml Datei.
Evtl heissen deine Ordner anders, kann man aber aus dem Stack rauslesen.
Export sollte klar sein und muss ohne Fehlemeldung durchlaufen.

Du musst dann den Stack stoppen, die Ordner löschen und neu anlegen, den Stack anpassen auf Postgres 17, den Stack starte und den Pull aktivieren dass die neuen Images geladen werden und die aktuelle Versionen/Container installiert werden.

Einfach in der yaml nicht :latest angeben sondern die ursprüngliche Version, so mach ich das immer, dann kann nix passieren.

der pull hat geklappt und der Webserver startet

nun ist allerdings die Datenbank scheinbar leer und mein account funktioniert nicht mehr…

muss ich meine Zugangsdaten manuell wieder zurückspielen oder wird das mit dem importer automatisch importiert und aktiviert?

Mit dem Import wird alles zurückgespielt, Dokumente, Tags, Benutzer, …kannst dich dann ganz normal anmelden wie bisher wenn der Import erfolgreich durchgelaufen ist.

ich habe die leere neue 2.17 mit SQL Version 17 gepulled und starten lassen

nun kommt beim importieren folgende Fehlermeldung:

Checking the manifest

Database import failed

No version information present
Traceback (most recent call last):
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, line 97, in execute
raise ex.with_traceback(None)
psycopg.errors.UniqueViolation: duplicate key value violates unique constraint „documents_tag_name_uniq“
DETAIL: Key (name)=(DKV) already exists.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File „/usr/src/paperless/src/manage.py“, line 10, in
execute_from_command_line(sys.argv)
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 442, in execute_from_command_line
utility.execute()
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 413, in run_from_argv
self.execute(*args, **cmd_options)
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 246, in handle
self._run_import()
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 288, in _run_import
self.load_data_to_database()
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 226, in load_data_to_database
raise e
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 207, in load_data_to_database
call_command(„loaddata“, manifest_path)
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 194, in call_command
return command.execute(*args, **defaults)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 103, in handle
self.loaddata(fixture_labels)
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 164, in loaddata
self.load_label(fixture_label)
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 254, in load_label
if self.save_obj(obj):
^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 210, in save_obj
obj.save(using=self.using)
File „/usr/local/lib/python3.12/site-packages/django/core/serializers/base.py“, line 265, in save
models.Model.save_base(self.object, using=using, raw=True, **kwargs)
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 998, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 1161, in _save_table
results = self._do_insert(
^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 1202, in _do_insert
return manager._insert(
^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/manager.py“, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/query.py“, line 1847, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py“, line 1836, in execute_sql
cursor.execute(sql, params)
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 79, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/utils.py“, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, line 97, in execute
raise ex.with_traceback(None)
django.db.utils.IntegrityError: Problem installing fixture ‚/usr/src/paperless/export/manifest.json‘: Could not load documents.Tag(pk=116): duplicate key value violates unique constraint „documents_tag_name_uniq“
DETAIL: Key (name)=(DKV) already exists.

Kann es sein, dass ich tatsächlich die version 2.17.2 und nicht die 2.17 hatte?
Ich konnte allerdings nicht 2.17.2 in der yml eingeben, da hatte er gemeckert.

Schau mal hier findest du die verfügbaren Versionen die du installieren kannst.

Beim Import meckert Paperless eh wenn die installierte und die zu importierende Version nicht übereinstimmt.
Wenn du eine andere Version brauchst dann wieder sicherheitshalber die Ordner löschen und anlegen, Paperless installieren, paar Minuten warten und den Import starten.

Edit:
Im Exportordner findest du die Datei metadata.json, in derDatei steht die Paperless Version vom Export.

sorry hatte 2.17.1 und nicht 2.17.2

zigmal probiert, trotzdem geht der import nicht durch mit folgender Fehlermeldung:
Checking the manifest
Database import failed
No version information present
Traceback (most recent call last):
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, line 97, in execute
raise ex.with_traceback(None)
psycopg.errors.UniqueViolation: duplicate key value violates unique constraint „documents_tag_name_uniq“
DETAIL: Key (name)=(DKV) already exists.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File „/usr/src/paperless/src/manage.py“, line 10, in
execute_from_command_line(sys.argv)
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 442, in execute_from_command_line
utility.execute()
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 413, in run_from_argv
self.execute(*args, **cmd_options)
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 246, in handle
self._run_import()
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 288, in _run_import
self.load_data_to_database()
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 226, in load_data_to_database
raise e
File „/usr/src/paperless/src/documents/management/commands/document_importer.py“, line 207, in load_data_to_database
call_command(„loaddata“, manifest_path)
File „/usr/local/lib/python3.12/site-packages/django/core/management/init.py“, line 194, in call_command
return command.execute(*args, **defaults)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/base.py“, line 459, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 103, in handle
self.loaddata(fixture_labels)
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 164, in loaddata
self.load_label(fixture_label)
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 254, in load_label
if self.save_obj(obj):
^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/core/management/commands/loaddata.py“, line 210, in save_obj
obj.save(using=self.using)
File „/usr/local/lib/python3.12/site-packages/django/core/serializers/base.py“, line 265, in save
models.Model.save_base(self.object, using=using, raw=True, **kwargs)
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 998, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 1161, in _save_table
results = self._do_insert(
^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/base.py“, line 1202, in _do_insert
return manager._insert(
^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/manager.py“, line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/query.py“, line 1847, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py“, line 1836, in execute_sql
cursor.execute(sql, params)
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 79, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/django/db/utils.py“, line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File „/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py“, line 105, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File „/usr/local/lib/python3.12/site-packages/psycopg/cursor.py“, line 97, in execute
raise ex.with_traceback(None)
django.db.utils.IntegrityError: Problem installing fixture ‚/usr/src/paperless/export/manifest.json‘: Could not load documents.Tag(pk=116): duplicate key value violates unique constraint „documents_tag_name_uniq“
DETAIL: Key (name)=(DKV) already exists.