@ -0,0 +1,32 @@
|
||||
# Generated by Django 5.1.10 on 2025-06-10 14:17
|
||||
|
||||
import pgtrigger.compiler
|
||||
import pgtrigger.migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tasks", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
pgtrigger.migrations.AddTrigger(
|
||||
model_name="task",
|
||||
trigger=pgtrigger.compiler.Trigger(
|
||||
name="update_aggregated_status",
|
||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||
constraint="CONSTRAINT",
|
||||
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||
func="\n NEW.aggregated_status := CASE\n WHEN NEW.status != 'done' THEN NEW.status\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||
hash="9f97b7e85dd6428402da79d4f748740f0a3ac88c",
|
||||
operation="INSERT OR UPDATE",
|
||||
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||
table="authentik_tasks_task",
|
||||
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||
when="AFTER",
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
@ -0,0 +1,36 @@
|
||||
# Generated by Django 5.1.10 on 2025-06-10 14:17
|
||||
|
||||
import pgtrigger.compiler
|
||||
import pgtrigger.migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tasks", "0002_task_update_aggregated_status"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
pgtrigger.migrations.RemoveTrigger(
|
||||
model_name="task",
|
||||
name="update_aggregated_status",
|
||||
),
|
||||
pgtrigger.migrations.AddTrigger(
|
||||
model_name="task",
|
||||
trigger=pgtrigger.compiler.Trigger(
|
||||
name="update_aggregated_status",
|
||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||
constraint="CONSTRAINT",
|
||||
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||
hash="7187c511fa7d22f8c34f2068c37b9bf2e51b9e40",
|
||||
operation="INSERT OR UPDATE",
|
||||
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||
table="authentik_tasks_task",
|
||||
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||
when="AFTER",
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
@ -0,0 +1,36 @@
|
||||
# Generated by Django 5.1.10 on 2025-06-10 14:19
|
||||
|
||||
import pgtrigger.compiler
|
||||
import pgtrigger.migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tasks", "0003_remove_task_update_aggregated_status_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
pgtrigger.migrations.RemoveTrigger(
|
||||
model_name="task",
|
||||
name="update_aggregated_status",
|
||||
),
|
||||
pgtrigger.migrations.AddTrigger(
|
||||
model_name="task",
|
||||
trigger=pgtrigger.compiler.Trigger(
|
||||
name="update_aggregated_status",
|
||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||
constraint="CONSTRAINT",
|
||||
declare="DECLARE aggregated_status TEXT; max_log_level TEXT;",
|
||||
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||
hash="6f01e43ff57b11081bff98b7e7b296ccaaa7cf7f",
|
||||
operation="INSERT OR UPDATE",
|
||||
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||
table="authentik_tasks_task",
|
||||
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||
when="AFTER",
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
@ -0,0 +1,35 @@
|
||||
# Generated by Django 5.1.10 on 2025-06-10 14:26
|
||||
|
||||
import pgtrigger.compiler
|
||||
import pgtrigger.migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tasks", "0004_remove_task_update_aggregated_status_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
pgtrigger.migrations.RemoveTrigger(
|
||||
model_name="task",
|
||||
name="update_aggregated_status",
|
||||
),
|
||||
pgtrigger.migrations.AddTrigger(
|
||||
model_name="task",
|
||||
trigger=pgtrigger.compiler.Trigger(
|
||||
name="update_aggregated_status",
|
||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||
constraint="CONSTRAINT",
|
||||
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||
hash="328d7b7a131530f4ecc68f1cadb0146cf948fd03",
|
||||
operation="INSERT OR UPDATE",
|
||||
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||
table="authentik_tasks_task",
|
||||
timing="DEFERRABLE INITIALLY IMMEDIATE",
|
||||
when="AFTER",
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
@ -0,0 +1,33 @@
|
||||
# Generated by Django 5.1.10 on 2025-06-10 14:33
|
||||
|
||||
import pgtrigger.compiler
|
||||
import pgtrigger.migrations
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentik_tasks", "0005_remove_task_update_aggregated_status_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
pgtrigger.migrations.RemoveTrigger(
|
||||
model_name="task",
|
||||
name="update_aggregated_status",
|
||||
),
|
||||
pgtrigger.migrations.AddTrigger(
|
||||
model_name="task",
|
||||
trigger=pgtrigger.compiler.Trigger(
|
||||
name="update_aggregated_status",
|
||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||
func="\n NEW.aggregated_status := CASE\n WHEN NEW.state != 'done' THEN NEW.state\n ELSE COALESCE((\n SELECT CASE\n WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'\n WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'\n WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'\n ELSE 'done'\n END\n FROM jsonb_array_elements(NEW._messages) AS msg\n ), 'done')\n END;\n\n RETURN NEW;\n ",
|
||||
hash="ebc09bc08c1624966c0c58a52f243fe25a842058",
|
||||
operation="INSERT OR UPDATE",
|
||||
pgid="pgtrigger_update_aggregated_status_f18c4",
|
||||
table="authentik_tasks_task",
|
||||
when="BEFORE",
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
@ -89,17 +89,15 @@ class Task(SerializerModel):
|
||||
pgtrigger.Trigger(
|
||||
name="update_aggregated_status",
|
||||
operation=pgtrigger.Insert | pgtrigger.Update,
|
||||
when=pgtrigger.After,
|
||||
timing=pgtrigger.Immediate,
|
||||
declare=[("aggregated_status", "TEXT"), ("max_log_level", "TEXT")],
|
||||
when=pgtrigger.Before,
|
||||
func=f"""
|
||||
NEW.aggregated_status := CASE
|
||||
WHEN NEW.status != '{TaskState.DONE.value}' THEN NEW.status
|
||||
WHEN NEW.state != '{TaskState.DONE.value}' THEN NEW.state
|
||||
ELSE COALESCE((
|
||||
SELECT CASE
|
||||
WHEN bool_or(msg->'log_level' = 'error') THEN 'error'
|
||||
WHEN bool_or(msg->'log_level' = 'warning') THEN 'warning'
|
||||
WHEN bool_or(msg->'log_level' = 'info') THEN 'info'
|
||||
WHEN bool_or(msg->>'log_level' = 'error') THEN 'error'
|
||||
WHEN bool_or(msg->>'log_level' = 'warning') THEN 'warning'
|
||||
WHEN bool_or(msg->>'log_level' = 'info') THEN 'info'
|
||||
ELSE '{TaskState.DONE.value}'
|
||||
END
|
||||
FROM jsonb_array_elements(NEW._messages) AS msg
|
||||
|
Reference in New Issue
Block a user