mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-11 17:17:26 +01:00
Fixes up some issues with the migrations and type mismatches
This commit is contained in:
parent
04faa10e3b
commit
19d4b85961
3 changed files with 29 additions and 32 deletions
74
src/documents/migrations/1026_transition_to_celery.py
Normal file
74
src/documents/migrations/1026_transition_to_celery.py
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# Generated by Django 4.1.1 on 2022-09-27 19:31
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
def _attempted_task(apps, schema_editor):
|
||||
"""
|
||||
Remove any existing attempted_task one to one fields.
|
||||
"""
|
||||
task_model = apps.get_model("documents", "PaperlessTask")
|
||||
|
||||
for task in task_model.objects.all():
|
||||
if hasattr(task, "attempted_task"):
|
||||
task.attempted_task = None
|
||||
task.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("django_celery_results", "0011_taskresult_periodic_task_name"),
|
||||
("documents", "1025_alter_savedviewfilterrule_rule_type"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name="paperlesstask",
|
||||
name="created",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="paperlesstask",
|
||||
name="name",
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name="paperlesstask",
|
||||
name="started",
|
||||
),
|
||||
# Ensure any existing PaperlessTask.attempted_task are nulled
|
||||
# This ensures nothing is pointing to a django-q model
|
||||
migrations.RunPython(
|
||||
code=_attempted_task,
|
||||
reverse_code=migrations.RunPython.noop,
|
||||
),
|
||||
# Remove the field from the model
|
||||
migrations.RemoveField(
|
||||
model_name="paperlesstask",
|
||||
name="attempted_task",
|
||||
),
|
||||
# Add the field back, pointing to the correct model
|
||||
# This resolves a problem where the temporary change in 1022
|
||||
# results in a type mismatch
|
||||
migrations.AddField(
|
||||
model_name="paperlesstask",
|
||||
name="attempted_task",
|
||||
field=models.OneToOneField(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="attempted_task",
|
||||
to="django_celery_results.taskresult",
|
||||
),
|
||||
),
|
||||
# Drop the django-q tables entirely
|
||||
migrations.RunSQL(
|
||||
"DROP TABLE IF EXISTS django_q_ormq", reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
migrations.RunSQL(
|
||||
"DROP TABLE IF EXISTS django_q_schedule", reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
migrations.RunSQL(
|
||||
"DROP TABLE IF EXISTS django_q_task", reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue