# 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 ), ]