File: 0013_separate_exception_fields.py

package info (click to toggle)
python-django-tasks-db 0.12.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 344 kB
  • sloc: python: 2,227; sh: 5; makefile: 4
file content (30 lines) | stat: -rw-r--r-- 1,004 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Generated by Django 4.2.13 on 2024-08-23 14:38

from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps
from django.db.models.functions import Coalesce


def separate_exception_fields(
    apps: StateApps, schema_editor: BaseDatabaseSchemaEditor
) -> None:
    DBTaskResult = apps.get_model("django_tasks_database", "DBTaskResult")

    DBTaskResult.objects.using(schema_editor.connection.alias).update(
        exception_class_path=Coalesce(
            models.F("exception_data__exc_type"), models.Value("", models.JSONField())
        ),
        traceback=Coalesce(
            models.F("exception_data__exc_traceback"),
            models.Value("", models.JSONField()),
        ),
    )


class Migration(migrations.Migration):
    dependencies = [
        ("django_tasks_database", "0012_add_separate_exception_fields"),
    ]

    operations = [migrations.RunPython(separate_exception_fields)]