From 61bfe25e17a73ac071d9201d0646ed91a4b21488 Mon Sep 17 00:00:00 2001 From: stumpylog <797416+stumpylog@users.noreply.github.com> Date: Wed, 15 Apr 2026 13:59:02 -0700 Subject: [PATCH] chore(tasks): remove django-celery-results PaperlessTask now tracks all task results via Celery signals. The django-celery-results DB backend was write-only -- nothing reads from it. Drop the package and add a migration to clean up the orphaned tables. Co-Authored-By: Claude Sonnet 4.6 --- pyproject.toml | 1 - .../migrations/0020_drop_celery_results.py | 22 +++++++++++++++++++ src/paperless/settings/__init__.py | 3 --- uv.lock | 15 ------------- 4 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 src/documents/migrations/0020_drop_celery_results.py diff --git a/pyproject.toml b/pyproject.toml index 1537155a8..58c79e05c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,6 @@ dependencies = [ "django-allauth[mfa,socialaccount]~=65.15.0", "django-auditlog~=3.4.1", "django-cachalot~=2.9.0", - "django-celery-results~=2.6.0", "django-compression-middleware~=0.5.0", "django-cors-headers~=4.9.0", "django-extensions~=4.1", diff --git a/src/documents/migrations/0020_drop_celery_results.py b/src/documents/migrations/0020_drop_celery_results.py new file mode 100644 index 000000000..c6a7faab0 --- /dev/null +++ b/src/documents/migrations/0020_drop_celery_results.py @@ -0,0 +1,22 @@ +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("documents", "0019_task_system_redesign"), + ] + + operations = [ + migrations.RunSQL( + sql="DROP TABLE IF EXISTS django_celery_results_taskresult;", + reverse_sql=migrations.RunSQL.noop, + ), + migrations.RunSQL( + sql="DROP TABLE IF EXISTS django_celery_results_groupresult;", + reverse_sql=migrations.RunSQL.noop, + ), + migrations.RunSQL( + sql="DROP TABLE IF EXISTS django_celery_results_chordcounter;", + reverse_sql=migrations.RunSQL.noop, + ), + ] diff --git a/src/paperless/settings/__init__.py b/src/paperless/settings/__init__.py index bace016cf..6f76d3499 100644 --- a/src/paperless/settings/__init__.py +++ b/src/paperless/settings/__init__.py @@ -133,7 +133,6 @@ INSTALLED_APPS = [ "rest_framework", "rest_framework.authtoken", "django_filters", - "django_celery_results", "guardian", "allauth", "allauth.account", @@ -669,8 +668,6 @@ CELERY_BROKER_TRANSPORT_OPTIONS = { CELERY_TASK_TRACK_STARTED = True CELERY_TASK_TIME_LIMIT: Final[int] = get_int_from_env("PAPERLESS_WORKER_TIMEOUT", 1800) -CELERY_RESULT_EXTENDED = True -CELERY_RESULT_BACKEND = "django-db" CELERY_CACHE_BACKEND = "default" # https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-serializer diff --git a/uv.lock b/uv.lock index d4bb929cc..5d5a931bc 100644 --- a/uv.lock +++ b/uv.lock @@ -935,19 +935,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/bf/af8ad2aa5a402f278b444ca70729fb12ee96ddb89c19c32a2d7c5189358f/django_cachalot-2.9.0-py3-none-any.whl", hash = "sha256:b80ac4930613a7849988ea772a53598d262a15eaf55e5ec8c78accae7fdd99ff", size = 57814, upload-time = "2026-01-28T05:23:28.741Z" }, ] -[[package]] -name = "django-celery-results" -version = "2.6.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "celery", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "django", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a6/b5/9966c28e31014c228305e09d48b19b35522a8f941fe5af5f81f40dc8fa80/django_celery_results-2.6.0.tar.gz", hash = "sha256:9abcd836ae6b61063779244d8887a88fe80bbfaba143df36d3cb07034671277c", size = 83985, upload-time = "2025-04-10T08:23:52.677Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/da/70f0f3c5364735344c4bc89e53413bcaae95b4fc1de4e98a7a3b9fb70c88/django_celery_results-2.6.0-py3-none-any.whl", hash = "sha256:b9ccdca2695b98c7cbbb8dea742311ba9a92773d71d7b4944a676e69a7df1c73", size = 38351, upload-time = "2025-04-10T08:23:49.965Z" }, -] - [[package]] name = "django-compression-middleware" version = "0.5.0" @@ -2869,7 +2856,6 @@ dependencies = [ { name = "django-allauth", extra = ["mfa", "socialaccount"], marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django-auditlog", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django-cachalot", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, - { name = "django-celery-results", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django-compression-middleware", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django-cors-headers", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, { name = "django-extensions", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" }, @@ -3018,7 +3004,6 @@ requires-dist = [ { name = "django-allauth", extras = ["mfa", "socialaccount"], specifier = "~=65.15.0" }, { name = "django-auditlog", specifier = "~=3.4.1" }, { name = "django-cachalot", specifier = "~=2.9.0" }, - { name = "django-celery-results", specifier = "~=2.6.0" }, { name = "django-compression-middleware", specifier = "~=0.5.0" }, { name = "django-cors-headers", specifier = "~=4.9.0" }, { name = "django-extensions", specifier = "~=4.1" },